关于为什么我不能从 $http.success() 方法中调用 $broadcast,我无法给出合理的答案。没有错误,并且 $broadcast 在 $http.success() 之外工作。侦听器位于 angular-schema-form-upload 的修改版本上,可在此处找到
这是一个简化版本。如何从 $http 的成功方法中触发侦听器?
var app = angular.module('plunker', []).factory('projects',['$http', '$rootScope',function($http, $rootScope){
var service = {items:[], create: function(project){
return $http.post('/myrails/api/project', project).success(function(data){
service.items.push(data);
$rootScope.$broadcast('schemaFormFileUploadSubmit', {project_id: data.id});//this never works
});
}};
return service;
}]);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
});