我理解基本的Javascripts
回调,但我不知道$rootScope.$emit 'dispatchQuery'
正在做什么。
(function() {
angular.module('sp').factory('Object', [
'$rootScope', function($rootScope) {
var Object;
return Object = {
load: function(callback) {
return $http(method: "get", url: "http://myhost/bananas", options = {}).success(function(response) {
$rootScope.myItems = response.items;
return callback && callback();
});
}
};
}
]);
}).call(this);
从main.js
sp.run [
'$rootScope','Object'
, function($rootScope, Object) {
Object.load = function(){ $rootScope.$emit 'Query'}
}]
答案 0 :(得分:1)
$rootScope.$emit()
通过范围链向上调度事件消息。由于$rootScope
位于范围链的顶部,因此只有$rootScope
上的侦听器才会收到该事件。代码中的某个位置应该有$rootScope.$on('Query', function(){...})
然而,您的代码的语法似乎是错误的。下面的代码将生成语法错误。
$rootScope.$emit 'Query'
此外,您的工厂会创建一个.load()
方法,然后在.run()
块中使用其他方法替换该方法。您的代码示例中没有任何一个实际调用的方法。
最后......你应该避免使用关键字Object
。考虑给你的服务工厂一个更有意义的名字。