【发布时间】:2014-06-01 19:41:24
【问题描述】:
我无法绕过这个。这是一个例子......请有人解释一下吗?
在 AngularJs 中,可以编写自定义过滤器。一个这样的过滤器可能看起来像这样(感谢 Adam Freeman 和他关于 Angular 的新书):
angular.module("exampleApp")
.filter("labelCase", function() {
return function (value, reverse) {
if (angular.isString(value)) {
....
}
};
});
在这个例子中,内部函数中“value”的值是由Angular自动提供的。 “reverse”参数由代码开发人员提供,必须由 HTML 插入。 “reverse”的值由 HTML 提供,如下所示:
... <tr>{{p.category | labelCase:true}}</td>
所以,这是我的问题:
我们应该如何知道 Angular 会自动将值数据插入“值”参数?这是常识吗?
为什么HTML“labelCase:true”调用不必为函数中的“value”参数提供占位符?换句话说,Angular 是如何知道“true”应用于第二个参数的?
这如何不会创建极其脆弱的代码?如果 Angular 人员决定在未来提供另一个自动提供的参数,会发生什么?如果发生这种情况,这不会破坏当前编写的内部函数:return function (value, reverse) { ... }?
这让我非常困惑。我期待着对这一切有更好的理解。
【问题讨论】:
标签: javascript angularjs function parameters arguments