我正在尝试使用 $emit 从服务向 Controller 发送数据。每当我在服务中使用 console.log 时,数据就在那里,但在 Controller $rootScope.$on 中我看不到数据。
service.GetTest = function () {
var inside = this;
var promise = $http(
{
method: 'POST',
url: inside.baseUrl + 'Admin/setTest',
contentType: 'application/json'
});
promise.then(function (data) {
console.log(data);
$rootScope.$emit('monitor', data);
})
}
$rootScope.$on('monitor', function (event,data) {
console.log(data);
});
最佳答案
$on
的回调首先有 event
。您的函数应该是 function(event, data)
,而不是 function(data)
。
此外,您应该考虑从 GetTest
返回 promise 。这听起来像是一种应该 promise 链而不是使用事件的资源方法。
关于javascript - $emit Controller 中无法访问的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43306814/