2016-04-18 4 views
0

ここではsummary.controller.jsの37行目でservice:filter.jsで定義されているメソッド 'filter.jdpa'を呼び出しています。 方法は、アレイjdpaarrを返すことを意味するが、私はコントローラにそれを呼び出すとき、私はサービスのためのコードもサービスコールは実際の返り値よりも関数定義を返しています

下に取り付けられている The output of the controller

The service calls from the controller

出力として全体のメソッド定義を取得します

(function() { 
    'use strict'; 
    angular.module('app') 
      .service('filter', filter); 

    function filter() { 

      this.jdpaf=jdpaf; 
      this.yearf=yearf; 
      this.cityf=cityf; 

    function jdpaf(){ 
     var jdpaarr=['All','JDPA','Non-JDPA']; 
     console.log(jdpaarr); 
     return 'jdpaarr'; 


    } 

    function yearf(){ 
     var yeararr=['2011','2012','2013','2014']; 
      console.log(yeararr); 
     return 'yeararr'; 
    } 


    function cityf(){ 
     var cityarr=['Delhi','Mumbai','Trivandrum','Banglore','Hyderabad']; 
     return cityarr; 
    } 


     } 
    })(); 

サービス自体にconsole.logsを指定しましたが、それが動作しません。 しかし、なぜ関数定義全体が関数呼び出しに表示されていますか?

答えて

1

基本的には定義のみを割り当てています。

初期化時に呼び出し/実行し、返された値を次のようにスコープに保存してみてください。

$scope.Filterarray.jdpa = filter.jdpaf(); 

これが役に立ちます。

関連する問題