我了解基本的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'}
}]
$rootScope.$emit()
通过范围链向上派遣事件消息。由于$rootScope
位于范围链的顶部,因此$rootScope
上的听众只会收到该事件。代码中的某个地方,应该有一个$rootScope.$on('Query', function(){...})
但是,您的代码语法似乎是错误的。下面的代码将生成语法错误。
$rootScope.$emit 'Query'
另外,您的工厂创建了一个.load()
方法,然后在.run()
块中用其他方法替换。代码样本中的任何地方都没有实际调用。
最后...您应该避免使用关键字Object
。考虑给您的服务工厂一个更有意义的名称。