Angularjs 当js调用过滤器时,其返回null
我是angularJS的新手,我尝试在angularJS中使用JavaScript过滤,但我得到了nullAngularjs 当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},
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);
});