Angularjs 当js调用过滤器时,其返回null

Angularjs 当js调用过滤器时,其返回null,angularjs,Angularjs,我是angularJS的新手,我尝试在angularJS中使用JavaScript过滤,但我得到了null app.controller('aneesFilters', function($filter){ this.filterItem = filterItems; this.filterJSItem = $filter('currency')(filterItems, 'price'); }); var filterItems = [ {price: 1254},

我是angularJS的新手,我尝试在angularJS中使用JavaScript过滤,但我得到了null

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>

{{item.price | currency}}
{{item.price}货币:“JOD”}
{{item.price}货币:“JOD”:0}

通过javascript(在控制器中使用过滤器) {{item.price}}
显然,当我在表达式上使用过滤器时,代码起作用,调用FilterJsItem时出现问题

非常感谢

我已经创建了一个plunker

基本上,我已经创建了另一个过滤器,它使用货币过滤器,并对数组进行修改,然后返回过滤后的数组

//代码在这里

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');

});
var-app=angular.module(“app”,[]);
app.filter('currenyArray',函数($filter){
返回函数(输入、格式、属性){
输入=输入| |[];
var out=角度。复制(输入);
对于(变量i=0;i
我的问题发生了,因为我在数组中有对象,我尝试使用类似的示例,但它也返回null..将控制器的第三行更改为this.filterJSItem=$filter('currency')(filterItems.price);谢谢,这是工作,但我做了一些更改,比如将$scope.filterJS2更改为this.filterJS2..,并将html中的ng repeat设置为repeat item…(Y)
app.controller('aneesFilters', function($filter){
    this.filterItem = filterItems;
    this.filterJSItem = $filter('currency')(filterItems.price);

});