假設我有兩個控制器,這兩個控制器是兄弟關係ListController
==> 清單控制器SearchController
==> 搜尋控制器
頁面一上來就在列表控制器
中 請求資料成功後掛載到 $scope.data
然後在列表視圖中應用。
but 我現在要搜尋。
搜尋控制器
中有方法。輸入文字點選確認,取得服務端回傳的資料。
ok 我現在成功取得到資料了,我怎麼把資料應用到 列表控制器
中 來渲染列表視圖?
淡淡烟草味2017-05-15 17:05:22
可以用angularjs的廣播,關鍵程式碼如下
ListController
$scope.$on('SearchController.onSearch',function(e,data){
console.log(data);
});
SearchController
//搜索方法请根据实例情况处理 ,这里只进行获得结果之后的处理
$scope.search = function(){
var data = [];//搜索到的数据,如果是异步拿到的,请把以后的代码放到回调中
$scope.$emit('SearchController.onSearch',data);
}
$rootScope頂級控制器處理
$scope.$on('SearchController.onSearch',function(e,data){
$scope.$broadcast('SearchController.onSearch',data)
});
就可以了。核心是利用了廣播
phpcn_u15822017-05-15 17:05:22
寫個service呀,用來保存全域資料。進入列表頁面的時候,先判斷下這個全域數據物件是否有數據,沒有數據直接顯示原來的數據,有數據表示搜尋過了,就顯示搜尋數據或其他你喜歡的顯示方式。