我知道這個問題已被問了很多次,但我有一個不同的問題與控制器之間共享數據有關。angularjs:控制器之間共享數據(加載HTML)
的index.html
<div ng-controller="MainController"><div>LeftPanel</div> <div ng-include src="RitePanel"></div></div>
在Leftpanel所有文件得到加載任何文件被點擊時,我改變RitePanel的價值,在 「RiteDiv」
switch (document.status) {
case 1://Draft
$scope.RitePanel= '/Scripts/app/home/templates/primary-right-panel/draft-panel.html';
break;
case 2://Completed
$scope.RitePanel= '/Scripts/app/home/templates/primary-right-panel/completed-panel.html';
break;
sharingservice帶來了新的HTML。的setObject(document.id);
我創建控制器,每個HTML如draftcontroller的草案,html和completedcontroller已完成,HTML這些都是孩子控制器
我創建了一個共享服務共享頂部和子控制器之間的數據
adocsModule.factory('SharingService', function ($rootScope) {
var service = {
setobject: function (object) {
$rootScope.$broadcast('docobject', object);
}
};
return service;});
,並在孩子的控制器我做
adocsModule.controller('draftcontroller ', ['$scope', 'SharingService', function ($scope, sharingservice) {
$scope.$on('docobject', function (event, clientDataObject) {
alert(clientDataObject); //i know its not recommended its just for testing purpose
console.log('pendingcontroller ' + clientDataObject);
$scope.test = clientDataObject;
});}]);
HTML:
<div ng-controller="draftcontroller "> <span>{{test}}</span></div>
問題:
上的文件第一次點擊(LeftPanel)沒有得到提示,當我點擊它,我再次看到警告和(RitePanel)也改變HTML 我的感覺是它因爲首先點擊HTML沒有加載,可能是因爲那個孩子控制器不聽?
在頁面加載時加載的子控制器不會動態加載它們。只是被加載動態
任何幫助HTML可以理解的:)
sory我的錯誤,它發生在主控制器。我已經編輯它在我的問題 – Salman
我已經解決了它使用$超時我認爲這是因爲廣播發生在HTML加載之前發生 – Salman