app.factory('userService', ['$http', function ($http) {
var userService= {},
userService.getUsers = function () {
return $http.get('getUsers');
}
userService.users =[];
return userService;
}]);
app.controller("FirstController",["$http","userService",function($http,userService){
userService.getUsers().success(function (users){
userService.users = users;//在SecondController得不到数据
})
//userService.users=[1,2,3] 如果我这样更新数据,在SecondController可以获得数组[1,2,3]
}])
app.controller("SecondController",["$http","userService",function($http,userService){
//userService.users 此得到的为空数组
//但是console.log(userService) 可以看到userService.users中有数据
}])
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
一般封装server时基本都会用promise进行封装的。(推荐做法)
题主不想用promise,那就使用callback也能解决问题。
还有个思路就是使用事件通知,当server获取到数据后,利用事件通知controller.
楼上说了 使用callback可以解决 我试了一下 成功了 分享一下代码,希望对你有用
send() 是keyup事件 来动态获取 第一个控制器里面的输入值