【发布时间】:2014-01-30 09:20:31
【问题描述】:
我是 AngularJS 的新手,我经常看到这种语法:
function someFunc(){
return function(input){
return 'hello' + input;
}
}
上面的函数是我经常看到的通用语法,但是这个自定义过滤器的例子是特定的问题:
angular.module('bookFilters', [])
.filter('newBookFilter', function(){
return function(input){
return 'The Book: ' + input.name + 'is new !';
};
});
我知道用另一个函数包装函数给了我使用依赖注入的机会,这是我的问题:
过滤器是否获取包装函数返回的函数?那么它是否能够使用依赖注入将值注入函数? 理论上:
这段代码:
{{bookObj | newBookFilter}}
会变成:
{{ bookObj | function(input){return 'The Book: ' + input.name + 'is new !'; } }}
最后,{{}} 将返回函数的最终值。
为什么我不能将input 注入到第一个函数中,例如:
angular.module('bookFilters', [])
.filter('newBookFilter', function(input){
return 'The Book: ' + input.name + 'is new !';
});
为什么依赖注入只对返回的函数起作用?
我知道我在这里真的很困惑,如果有人可以帮助我,我将非常感激,谢谢大家,祝你有美好的一天。
【问题讨论】:
-
我们使用相同的函数(.filter)和相同的参数=>应该只有一个实现。角度框架如何区分您的第一种情况和第二种情况?
-
如果有类似的东西,就会有 2 个不同的函数,类似于我们所拥有的
.factory和.service -
你能帮我理解为什么angularjs需要2个函数才能使用依赖注入吗?
-
不,不是 Angular js 需要 2 个函数。我的意思是如果有多种方式来声明一个服务(被注入到其他人),那么必须有不同的功能,每个实现一个。
标签: javascript angularjs code-injection