我想更改服务,myFct
但有一个问题:
这是我目前的服务,效果很好
工厂
angular.module('MyApp')
.factory('myFct', myFct);
function myFct(){
return{
getMyData : function() {
return $http.get('./my/data.json');
}
}
}
控制器
app.module('MyApp')
.controller('myCtrl', myCtrl);
myCtrl.$inject = ['myFct'];
function myCtrl(myFct){
vm = this;
vm.myData = myData();
function myData(){
myFct.getMyData().success(function(data){
vm.myData = data;
});
}
}
例如,我想在工厂管理$ http成功
工厂
angular.module('MyApp')
.factory('myFct', myFct);
function myFct(){
return{
getMyData : function() {
return $http.get('./my/data.json').success(function(data){
return data;
});
}
}
}
控制器
app.module('MyApp')
.controller('myCtrl', myCtrl);
myCtrl.$inject = ['myFct'];
function myCtrl(myFct){
vm = this;
vm.myData = myFct.getMyData();
}
变量的结果vm.myData
是不确定的。我知道$ http服务是异步的,但是如何处理该变量vm.myData
等于json文件的数据呢?
您可以实现与使用函数回调样式之后类似的行为。
在您的工厂中:
function myFct() {
return{
getMyData : function(callback) {
return $http.get('./my/data.json').success(function(data){
callback(data)
});
}
}
}
在您的控制器中:
function myCtrl(myFct){
vm = this;
myFct.getMyData(function(data) {
vm.myData = data;
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句