我正在学习Angular。如何在依赖模块中调用方法?
app.js
(function(){
var myApp = angular.module('myApp',['map']);
myApp.filter('move', function(){
return function(name){
return walk(name);
}
});
})();
map.js
(function(){
var mapMod = angular.module('map',[]);
mapMod.factory('walk', function(){
return "walking...";
});
})();
加载包含在脚本中的app.js和map.js的html页面后
ReferenceError: walk is not defined
如何调用walk in move filter?
答案 0 :(得分:0)
是的,你几乎做对了,你需要在过滤器中注入walk
,你可以使用数组语法(在下面的例子中)通过显式注释选择dependency injection的任何模式,使用$ inject语法或隐式依赖注释(使用ng-annotate进行安全缩小)。由于您已将map
列为模块myApp
的依赖项,因此map
模块中注册的所有实体也将在myApp
中可用。您也可以参考how to write a factory/service上的文档。
(function() {
var mapMod = angular.module('map', []);
mapMod.factory('walk', function() {
return function(name) {
return "walking..." + name;
}
});
})();
(function() {
var myApp = angular.module('myApp', ['map']);
myApp.filter('move', ['walk',
function(walk) {
return function(name) {
return walk(name);
}
}
]);
})();
(function() {
var mapMod = angular.module('map', []);
mapMod.factory('walk', function() {
return function(name) {
return "walking..." + name;
}
});
})();
(function() {
var myApp = angular.module('myApp', ['map']);
myApp.filter('move', ['walk',
function(walk) {
return function(name) {
return walk(name);
}
}
]);
})();

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
<div>{{"test"|move}}</div>
</div>
&#13;