作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个非常简单的工厂
angular.module('vpmClient')
.factory('DatosFactory', function($http){
var datos = {};
datos.data = [];
datos.getDatos = function(){
$http.post('php/dataHandler.php',{action:"get_datos"}).success(function(data){
datos.data = data;
});
};
datos.getDatos();
return datos;
})
然后在 Controller 中我将值从“datos.data”设置为范围变量
angular.module('vpmClient')
.controller('DatosController', function($http,$scope,DatosFactory){
$scope.datos = DatosFactory.data;
$scope.datoSeleccionado = {};
$scope.getDatos = function(){
console.log(DatosFactory.data);
return DatosFactory.data;
}
$scope.mostrarDato = function(dato){
//$scope.datoSeleccionado = dato;
//Magia
}
});
我需要在工厂发布结束后更新“scope.datos”的值
注意:我从工厂(在成功内部)做了一个 console.log,它正确地给了我对象,而且,在 Controller 中,我创建了一个函数来从浏览器控制台返回工厂的值,它也可以工作,但是当我 console.log "scope.datos"它返回一个空对象。
抱歉我的英语不好
最佳答案
只需将 $http 的 promise 返回给 Controller
angular.module('vpmClient').factory('DatosFactory', function($http){
var datos = {};
datos.data = [];
datos.getDatos = function(){
return $http.post('php/dataHandler.php',{action:"get_datos"});
};
return datos;
})
然后在 Controller 中调用服务
angular.module('vpmClient').controller('DatosController', function($http,$scope,DatosFactory){
$scope.datos = DatosFactory.data;
$scope.datoSeleccionado = {};
$scope.getDatos = function(){
DatosFactory.getDatos()
.then(function(httpResponse){
console.log(httpResponse.data);
$scope.datoSeleccionado = httpResponse.data;
})
}
});
关于javascript - Angular 范围未更新为出厂值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30871675/
我是一名优秀的程序员,十分优秀!