前言
由于controllers之間不共享scope,如果希望在controllers之間傳遞參數,可能需要通過其他的方式實現,以下是當前我用到的兩種在controllers之間傳遞參數的方法。
注:參考文章Sharing Data Between Angular Controllers
一、service
可以寫一個包含get/set的service,取參數/賦參數
.factory('paramService',function(){ return { result:[], getResult:function(){ return this.result; }, setResult:function(res){ this.result = res; } };})然后可以在controllerOne中賦值,在controllerTwo中取值
// 賦值.controller('one',function(paramService){ paramService.setResult('one');})// 取值.controller('two',function(paramService){ var param = paramService.getResult();})二、$stateParams
第二種方法用于路由間傳遞參數,用途也比較廣泛,使用場景比較多
// 傳參.state('one',{ url:'one', controller:'one', template:'one.html', params:{ name:'john' }})// 取參.controller('one',function($stateParams){ var name = $stateParams.name;})others/localStorage
其他方法可以使用一些h5的小技巧,比如使用localStorage來存參/取參,其他的方法,暫時沒想到也沒用到,有待后續補充.
好了,以上就是這篇文章的全部內容了,希望本文的內容對大家學習或者使用Angular能帶來一定的幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答