某草草2017-05-15 17:01:38
我们的项目中也有很多这种问题,简单说下我目前的解决办法。和上面一样也是封装了个service , 用http去请求数据,回来数据的时候存一份到缓存,所有controller要数据都走这个service,保证数据的一致。
巴扎黑2017-05-15 17:01:38
一般封装server时基本都会用promise进行封装的。(推荐做法)
题主不想用promise,那就使用callback也能解决问题。
还有个思路就是使用事件通知,当server获取到数据后,利用事件通知controller.
仅有的幸福2017-05-15 17:01:38
楼上说了 使用callback可以解决 我试了一下 成功了 分享一下代码,希望对你有用
send() 是keyup事件 来动态获取 第一个控制器里面的输入值
var app = angular.module("zgeApp",[]);
app.controller('firstCtrl', ['$scope','change', function($scope,change){
$scope.send = function(){
change.callback($scope.name)
}
}])
app.controller('secondCtrl', ['$scope','change', function($scope,change){
change.callback = function(data){
$scope.name1 = data;
}
}])
app.service("change",function(){
return {};
})