TL; DR - $on
應該更改practiceCount
的值......爲什麼不是這樣?這裏是codepen:http://codepen.io/anon/pen/qNERva爲什麼這個數字不能在我的頁面上自動更新?
這是我第三天練習MEAN發展,所以我沒有這個太多的經驗。
所以,我有一個控制器MainController
。我希望此控制器可用於靜態/持續可用的元素(不會顯示/隱藏條件),例如我的導航欄,其目的是廣播全局數據,例如應用程序中X的總數。
app.controller('MainController', [ '$scope','$http', function($scope, $http){
$scope.practiceCount = 0;
$scope.$on('practiceInfo', function(event, practiceInfo){
$scope.practiceCount = practiceInfo.count;
});
}]);
然後我有一個PracticeController
控制器。該控制器專門用於管理此應用程序的實踐(醫學實踐),即創建/刪除/編輯實踐。
app.controller('PracticeController', ['$scope', '$http', function($scope,$http){
//refresh function that fetches practices
var refresh = function(){
$http.get('/practices').success(function(response){
$scope.practices = response;
$scope.practiceCount = response.length;
$scope.$emit('practiceInfo', {
count: $scope.practiceCount
});
});
}
refresh();
$scope.createPractice = function(){
if($scope.practice)
$http.post('/practices', $scope.practice).success(function(response){
console.log(response);
refresh();
})
}
}]);
最後,在我的index.html
(模板)文件,我已經迷上了MainController
到我的導航欄的<ul>
,並想顯示practiceCount
,像這樣的:
<ul ng-controller="MainController">
{{practiceCount}}
</ul>
根據我目前的理解,我的期望
現在...我對此還不太瞭解,但從我的理解中,當我發出practiceInfo
w如果存儲在count
中的新值,那麼它應該被MainController
接收,並且practiceInfo.count
屬性應該被設置爲$scope.practiceCount
的新值MainController
...意味着它的值已經被改變/重置爲功能接收的結果是。有了這個,不應該在HTML上自動更改新的號碼嗎?
它只是停留爲0,這是我的初始化它MainController
建議將不勝感激,在這個問題上,或其他任何與自己相關。
感謝。
你在哪裏使用'PracticeController'? –
@animateA.White在'practices.html'(一個動態加載的模板) - 'ngRoute'處理它。 –
發射依賴於控制器樹的hiearchy。我們不知道那是什麼。 '$ scope。$ on('practiceInfo'' firing? – charlietfl