2016-06-27 13 views
0

$ emitを使用して複数のパラメータを送信しようとしていますが、それは私に未定義の値を与えました。ここに私のコードは次のとおりです。messageServiceで

:observerServiceで

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); 
    }); 
} 

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

私は問題を作っていますどこ誰かが私に言うことができる。..

答えて

1

あなたが送信しようとすることができます2つのキーを持つオブジェクト

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   
} 
+0

まあ、すでに書き込まれたすべてのオブザーバーを変更するには、この必要性第二引数は、関数内で定義されていない理由..私は好奇心 –

関連する問題