4 回答

TA貢獻1898條經驗 獲得超8個贊
angularjs不同控制器中的變量怎么使用
最簡單的讓控制器之間進行通信的方法是通過scope的繼承。假設有兩個控制器Parent、Child,Child 在 Parent 內,那Child 可以稱為子控制器,它將繼承父控制器Parent的scope。這樣,Child就可以訪問到Parent的scope中的所有函數和變量了。
需要注意的是,由于scope的繼承也是基于Js的原型繼承,如果變量是基本類型的,那在Child中的修改(寫),有可能會導致Parent中的數據變臟。

TA貢獻1784條經驗 獲得超9個贊
有時需要兩個controller相互通信,我學習到的兩個controller之間的通信是:父級controller通過廣播向子controller傳遞信息,而子controller通過冒泡向父級controller傳遞信息。假如不是兩個controller的話,可以構造一個父級controller,然后通過它來廣播信息。還有一種是通過工廠模式來注冊一個服務,通過服務來傳遞信息。而所說的冒泡和廣播就是angularjs的$emit和$broadcast,通過這兩種方法的話,要綁定事件,才可以進行廣播或者冒泡。
下面這種是$emit和$broadcast
假如是父級controller和子controller的通信的話,也可以用$watch()來監控你要的信息。不過只能子級的監控父級。$watch("tag",function(){});tag是你要監控的變量了。

TA貢獻1829條經驗 獲得超4個贊
舉例:
.controller('a',['scope',$rootScope',function($scope,$rootScope){
$rootScope.u=$scope.username1
}]);
.controller('b',['scope',$rootScope',function($scope,$rootScope){
$scope.username2=$rootScope.u
}]);
說明:通過父子作用域來傳遞,a中的username1通過子作用域傳遞給父作用域$rootScope,然后在b中通過父作用域$rootScope傳遞給b中的username2,從而實現兩個controller之間的數據傳遞
- 4 回答
- 0 關注
- 878 瀏覽
添加回答
舉報