AngularJS $ broadcastイベントを使用して、data
とaction
を2つのコントローラで渡そうとしています。しかし、私は値(参照ではない)としてデータを渡すことに問題があります。
私がこれまで行ってきたことは、私はその後、私は上のイベントのリスナを追加ショッピングcart.controller.js
//function inside shopping-cart.controller.js
function sendCartPreview() {
var shoppingCart = $scope.shoppingCart;
$rootScope.$broadcast('sendCartPreview', shoppingCart);
}
内shoppingCart
の対象とsendCartPreview
イベントをブロードキャスト機能を作成した最初のものですショッピングカートデータを取得し、コントローラ内部sendCartPreview
関数にデータ値を渡す別のコントローラが
//function inside chat.controller.js
$scope.$on("sendCartPreview", function(event, message){
sendCartPreview(message);
})
基本的sendCartPreview関数は、オブジェクトデータを受信し、アレイに追加しメッセージの。 $scope.shoppingCart
値の変更は、vm.arrayOfMessage
内部の値は、それぞれの変化に応じて変更するたびに、私が直面してる
function sendCartPreview(shopping_cart) {
//some logic here and push the data to an array
vm.arrayOfMessage.push(shopping_cart);
}
問題があります。私が平均して達成しようとしているのは、データを(参照ではなく)値として渡すことで、毎回$ scope.shoppingCartの値が変更されると、vm.arrayOfMessage内のデータには影響しません。どのように達成するのですか?親切にこれであなたの助けが必要です、どんな種類の助けても感謝します、ありがとう!
使用$ rootScope $適用()または$スコープ$(適用);。。 –