与this question类似,我有一个指令,我想在两种不同的情况下使用。我传递了一个可以使用的值,但我也想通过一个过滤器来应用它。这样做的正确语法是什么?如何将过滤器传递给Angular中的指令?
app.directive('showMe', function() {
return {
restrict: 'E',
scope: {
value: '=',
filter: '=',
placeholder: '='
},
templateUrl: 'show-me.html'
};
});
模板:
<input ng-model="value" ng-show="editMode" placeholder="{{placeholder}}" />
<p ng-hide="editMode">{{(value | percent)||placeholder}}</p>
使用:
<show-me value="item.discount" filter="percent" placeholder="0%" />
预期的结果:
<input value="25" placeholder="0%" />
or
<p>25%</p>
是的,这对我有效。我在函数中封装了displayValue,尽管它处理更多情况:'return $ scope.value? ($ scope.filter?$ filter($ scope.filter)($ scope.value):$ scope.value):$ scope.placeholder;' –
根据AngularJS文档,如果您愿意,可以进一步扩展。过滤器可以采用以下参数:$ filter('filter')(array,expression,comparator)'(第一个参数,“array”,即$ scope.value) –