Tra*_*zeK 13 javascript angularjs
我理解Angular依赖注入如何与指令一起使用,但需要澄清某些内容.我有一个虚拟测试指令如下:
app.directive("test", [
function() {
return {
restrict: "E",
scope: {},
controller: ["$scope", "$filter",
function($scope, $filter) {
var food = ["Apple pie", "Apple cobler", "Banana Split", "Cherry Pie", "Applesauce"];
$scope.favorites = $filter('filter')(food, "Apple");
}
],
template: "<div>{{favorites}}</div>"
}
}
]);
Run Code Online (Sandbox Code Playgroud)
这工作正常,将按food预期过滤数组.但是我注意到如果我$filter在指令中注入服务如下,它仍然有效:
app.directive("test", ["$filter",
function($filter) {
return {
restrict: "E",
scope: {},
controller: ["$scope",function($scope) {...
Run Code Online (Sandbox Code Playgroud)
我的问题:将服务注入声明行中的指令是更好的做法,如下所示:
app.directive("test", ["$filter", function($filter) {
或者像这样的控制器行:
controller: ["$scope", "$filter", function($scope, $filter) {?
没有区别吗?这是指令代码的Plunker.
Mic*_*ley 13
在这种情况下,您将收到相同的服务,因此可能无关紧要.我个人更喜欢让它们尽可能地本地化; 如果你不需要$filter在link函数或类似的东西,我只是将它注入控制器.
在某些情况下,这也可以使测试过程中更容易模拟依赖关系.
| 归档时间: |
|
| 查看次数: |
14795 次 |
| 最近记录: |