我正在使用tutorial来创建角度过滤器。我对一些实现感到困惑,它涉及到基本的javascript。这是鳕鱼片段:
// on the app object, the method filter is called passing a name parameter and the function
myApp.filter('reverse', function () {
return function (text) {
// now a function that accepts text as a parameter is returned
return text.split("").reverse().join("");
// the text parameter splits, revers, and joins the text parameter.
}
});
我的问题是为什么不能写这样的东西呢?在第二行的第一个片段中返回函数的目的是什么?
myApp.filter('reverse', function (text) {
return text.split("").reverse().join("");
});
答案 0 :(得分:1)
传递给filter
的函数是依赖注入函数。想象一下,你注入了一些东西:
myApp.filter('uc', function($http, myService, text) {
return text.toUpperCase();
});
myApp.filter('repeat', function($http, $location, myService2, text) {
return text + text;
});
您如何知道text
在参数列表中的位置?现在这些过滤器不会组合,因为参数不匹配。如果你返回一个总是把值作为第一个参数的函数,那么一切都很好,你可以这样做:
repeat(uc(value))