$ emit数据在控制器中无法访问

时间:2017-04-09 12:43:48

标签: javascript angularjs

我正在尝试使用$ emit将数据从服务发送到控制器。每当我在服务中的console.log时数据就在那里,但在控制器$ 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);
});

1 个答案:

答案 0 :(得分:1)

$on的回叫首先是event。您的功能应该是function(event, data),而不是function(data)

此外,您应该考虑从GetTest返回承诺。这听起来像是一种资源方法,它应该保证链而不是使用事件。