我對AngularJS是全新的,現在我正在轉換一個小應用程序,雖然有一件事讓我絆倒了。AngularJS - 推送JSON數據(結構正確,但缺少某些東西)
我的目標是向儀表板添加一個模塊,並且如果我硬編碼JSON數據,一切工作正常,但是,使用變量時似乎有問題。
我的服務:
var pushData = angular.toJson({"modID": "mod_rText_01", "sequence": 1, "group": 1, "dashboard": 1, "type": "text", "content": ["17%", "operating capacity"]});
console.log(' :: Module data pushed: ' + pushData);
$rootScope.$broadcast('locations', pushData); // broadcast to controller
我的控制器:
// listen for service location updates
$scope.$on('locations', function(event, pushData) {
console.log(' :: Module data received: ' + pushData);
$scope.locations.push(pushData);
});
控制檯日誌:
:: Module data pushed: {"modID":"mod_rText_01","sequence":1,"group":1,"dashboard":1,"type":"text","content":["17%","operating capacity"]}
:: Module data received: {"modID":"mod_rText_01","sequence":1,"group":1,"dashboard":1,"type":"text","content":["17%","operating capacity"]}
如前所述,如果我改變控制器線爲:$scope.locations.push({"modID":"mod_rText_01","sequence":1,"group":1,"dashboard":1,"type":"text","content":["17%","operating capacity"]});
它工作正常。我覺得我錯過了一些東西!雖然根據console.log,變量'pushData'是正確的,但沒有任何反應。
任何幫助將不勝感激!
Got it!非常感謝你。似乎我過於複雜的事情。感謝您的快速回復,所有工作。 :) – tinyBIGideas 2013-02-13 07:56:47
很高興我能幫忙,先生! :) – 2013-02-13 07:58:03
還有一件事 - 我通常使用事件僅用於控制器之間的通信。如果你想實現常規的控制器+服務方案,那麼你最好在聲明控制器內的服務的依賴關係。並從那裏進行明確的呼叫。 – 2013-02-13 07:59:53