Maison > Questions et réponses > le corps du texte
假设我有两个控制器,这两个控制器是兄弟关系ListController
==> 列表控制器SearchController
==> 搜索控制器
页面一上来就在列表控制器
中 请求数据成功后挂载到 $scope.data
然后在列表视图中应用。
but 我现在要搜索。
搜索控制器
中有方法。输入文字点击确认,获取服务端返回的数据。
ok 我现在成功获取到数据了,我怎么把数据应用到 列表控制器
中 来渲染列表视图?
淡淡烟草味2017-05-15 17:05:22
Vous pouvez utiliser la diffusion angulairejs, le code clé est le suivant
ListController
$scope.$on('SearchController.onSearch',function(e,data){
console.log(data);
});
SearchController
//搜索方法请根据实例情况处理 ,这里只进行获得结果之后的处理
$scope.search = function(){
var data = [];//搜索到的数据,如果是异步拿到的,请把以后的代码放到回调中
$scope.$emit('SearchController.onSearch',data);
}
Traitement du contrôleur de niveau supérieur $rootScope
$scope.$on('SearchController.onSearch',function(e,data){
$scope.$broadcast('SearchController.onSearch',data)
});
C'est tout. Le noyau est l'utilisation de la diffusion
phpcn_u15822017-05-15 17:05:22
Écrivez un service pour sauvegarder les données globales. Lorsque vous entrez dans la page de liste, déterminez d'abord si l'objet de données global contient des données. S'il n'y a pas de données, les données d'origine seront affichées directement. S'il y a des données, cela signifie que la recherche est terminée, et les données de recherche ou autres. les méthodes d’affichage que vous aimez seront affichées.
ringa_lee2017-05-15 17:05:22
Après avoir cliqué sur Rechercher, vous devez bien sûr demander à nouveau les données. Réattribuez simplement la valeur à votre $scope.data= et c'est ok
.