我有一个过滤器,它应该使用控制器中的一些变量。 但是当我运行应用程序时,我的控制台出错:错误:无法找到变量:$ scope ...
这是我的过滤器:
calcM.filter('money', function () {
return function (premium) {
if (isNaN(premium) || premium < 1) {
return premium;
} else {
if ($scope.data.pickedOptions.currency == $scope.currency.USD) {
return premium + 'USD'
} else if ($scope.data.pickedOptions.currency == $scope.currency.EUR) {
return premium + 'EUR'
}
}
}
});
然后转到我的控制器:
calcM.controller('calcMCtrl', function($scope, $http, $window) {...});
如果我在控制器中包含此滤波器,则会出现另一个注入错误。
答案 0 :(得分:0)
如评论中所述,您应该在过滤器中传递参数:
calcM.filter('money', function () {
return function (premium, currency, pickedOptions) {
if (isNaN(premium) || premium < 1) {
return premium;
} else {
if (pickedOptions.currency == currency.USD) {
return premium + 'USD'
} else if (pickedOptions.currency == currency.EUR) {
return premium + 'EUR'
}
return premium;
}
}
});
请参阅此answer,了解如何在过滤器中使用多个参数。