如何在$ emit中绑定两个以上的值

时间:2016-06-27 17:18:46

标签: angularjs angularjs-scope

我正在尝试使用$ emit发送多个参数,但它给了我未定义的值。这是我的代码:

在messageService中:

var internalScope = detachedScope.$new();
  function updateCallback(newMessage) {
    internalScope.$emit("change", angular.copy(inboxMessages), angular.copy(newMessage));
}

function observeMessages(fn) {
    return internalScope.$on('change', function (e, val, newVal) {
        fn(val, newVal);
    });
}

在observerService中:

   messageboxService.observeMessages(function (messages, value) {
   console.log(value); // always given undefined        
   }

有人可以告诉我我在哪里制造问题..

1 个答案:

答案 0 :(得分:1)

您可以尝试使用两个键发送对象

 var internalScope = detachedScope.$new();
   function updateCallback(newMessage) {
      internalScope.$emit("change", {inboxMsg: angular.copy(inboxMessages), newMsg: angular.copy(newMessage)});
   }

在观察员服务中,

messageboxService.observeMessages(function (evt,messageData) {
   console.log(messageData.inboxMsg, messageData.newMsg); // always given undefined        
}