2015-05-18 43 views
1

進出口新的角度濾波和IM嘗試在angularJS由JavaScript使用過濾器,但是我收到null ..當調用由角其返回空JS

app.controller('aneesFilters', function($filter){ 
    this.filterItem = filterItems; 
    this.filterJSItem = $filter('currency')(filterItems, 'price'); 

}); 

var filterItems = [ 
    {price: 1254}, 
    {price: 154}, 
    {price: 963}, 
    {price: 1880}, 
]; 

的html代碼:

<div ng-controller="aneesFilters as filter"> 
     <div ng-repeat="item in filter.filterItem"> 
      <div>{{item.price | currency}}</div> 
      <div>{{item.price | currency:"JOD"}}</div> 
      <div>{{item.price | currency:"JOD":0}}</div> 
      <hr /> 
     </div> 

     <h2>By javascript (Used filter in controller)</h2> 
     <div ng-repeat="item in filter.filterJSItem"> 
      <div>{{item.price}}</div> 
      <hr /> 
     </div> 
    </div> 

surly,代碼工作時,我使用過濾器表達式,問題發生時,調用FilterJsItem ..

非常感謝。

+0

http://stackoverflow.com/questions/28595124/how-can-i-use-an-angular-js-filter-to-format- values-in-an-array – adt

+0

我的問題是因爲我有數組中的對象,我嘗試使用像例子,但它也返回null .. –

回答

1

我已經創建了一個plunker here

基本上我已經創建其使用貨幣過濾器和作用於陣列修改它,並返回過濾陣列另一個過濾器。

//代碼放在這裏

var app = angular.module("app", []); 

app.filter('currenyArray', function($filter) { 
    return function(input, format, prop) { 
    input = input || []; 
    var out = angular.copy(input); 

    for (var i = 0; i < input.length; i++) { 
     var p = $filter('currency')(input[i][prop],format); 

     out[i][prop] = p; 
     console.log(input[i][prop]) 
    } 
    return out; 
    }; 
}) 

app.controller('myCtrl', function($filter, $scope){ 

    $scope.filterItem = [ 
    {price: 1254}, 
    {price: 154}, 
    {price: 963}, 
    {price: 1880}, 
];  



$scope.filterJS2 = $filter('currenyArray')($scope.filterItem, 'USD', 'price'); 

}); 
+0

謝謝,它的工作但是我做了一些變化,如變化$ scope.filterJS2 (Y) –

0
app.controller('aneesFilters', function($filter){ 
    this.filterItem = filterItems; 
    this.filterJSItem = $filter('currency')(filterItems.price); 

}); 
+0

將第三行控制器更改爲this.filterJSItem = $ filter('currency')(filterItems.price); –

+0

對不起,不工作太..謝謝了很多。 –