javascript - Angular 范围未更新为出厂值

标签 javascript angularjs

我创建了一个非常简单的工厂

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/

相关文章:

javascript - 如何在我的浏览器中编辑 javascript,就像我可以使用 Firebug 编辑 CSS/HTML 一样?

javascript - 我怎么知道一个div是显示: none in two or more tabs of a browser?

angularjs - 如何使用 Angularjs 的 ng-repeat 为每次重复使用两个 <li> 标签

javascript - 如何在 Angular-js 指令中定义一个函数

javascript - 如何为站点范围内的所有链接重定向到不同的域但相同的目录? JavaScript?

javascript - 什么时候使用类组件什么时候使用函数式组件

javascript - div 元素是否有等效于 "alt"的属性?

javascript - 创建 Django 应用程序的 pyinstaller exe 时加载脚本文件

javascript - Angular 网站无法在移动设备上打开

javascript - 处理来自上游的本地 Web 存储更改的推荐方法是什么?