javascript - $emit Controller 中无法访问的数据

标签 javascript angularjs

我正在尝试使用 $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/

相关文章:

angularjs - 触发phonegap deviceready 事件后设置$rootScope 变量

javascript - 为什么过滤器在 Angular 输入字段中不起作用?

javascript - GMail 服务器端 JavaScript 在哪个平台上运行?

javascript - JS : Dict of arrays combining by AND operation

javascript - 注入(inject)工厂时 Angular 停止工作

javascript - 如何在 AngularJS 中的某些事件完成后删除绑定(bind)在 html 元素内的动态数据

javascript - 获取函数调用者名称时遇到问题(arguments.callee.caller 不工作)

javascript - 我可以通过Jinja变量填充相关选择框吗?

Javascript if 语句插入图像

javascript - 谷歌翻译 API 文本到语音 : http requests forbidden