【发布时间】:2015-04-17 09:27:45
【问题描述】:
我有一个 json 项目和一个条形码扫描仪,条形码扫描仪直接输入到我的应用程序中。
现在这些物品有一个主要部件号和一个次要部件号,通常条形码扫描仪的结果将是主要部件号,但我必须检查两者以确保。
我正在尝试实现一个自定义过滤器来执行此操作,但它似乎不起作用,谁能让我知道我做错了什么?
storeApp.filter('barcodeScanner', function() {
return function(parts, barcode) {
angular.forEach(parts, function (vals, key) {
if( !angular.isUndefined(vals.Part_Number) && vals.Part_Number !== null )
if (angular.equals(vals.Part_Number,barcode))
return parts[key];
});
angular.forEach(parts, function(vals, key) {
if ( !angular.isUndefined(vals.Other_Part_Number) && vals.Other_Part_Number !== null )
if (angular.equals(vals.Other_Part_Number,barcode))
return parts[key];
});
};
});
然后我稍后在控制器中调用过滤器,
$scope.addItemToCart = function() {
$scope.shoppingCart.push($filter('barcodeScanner')($scope.parts, $scope.ItemToAdd));
console.log($scope.Cart.itemToAdd);
console.log($filter('barcodeScanner')($scope.parts, $scope.Cart.itemToAdd));
$scope.Cart.itemToAdd = "";
console.log($scope.shoppingCart);
};
但是过滤器的结果一直返回未定义。我知道我想要的条目确实存在,因为当我使用普通的 $filter('filter') 时它工作正常,但我不能冒险为我的应用程序使用如此广泛的过滤器。
感谢您的帮助:)
【问题讨论】:
标签: javascript angularjs filter angular-filters