Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度,使用预填充数据。运行,然后传递到工厂_Javascript_Angularjs - Fatal编程技术网

Javascript 角度,使用预填充数据。运行,然后传递到工厂

Javascript 角度,使用预填充数据。运行,然后传递到工厂,javascript,angularjs,Javascript,Angularjs,新来的。我正在尝试将数据传递到工厂以供使用。我试图在angular中使用$http以特定顺序触发事件。我被指向使用.run进行第一次填充的方向,将其传递到工厂,然后工厂将其传递到控制器。工厂有一个功能,允许我“刷新”与控制器共享的数据 我在设置刷新功能时得到了一些很大的帮助,但我正在努力让数据最初填充。以下是我的尝试: .run("getDataForLevels", function($http){ var getIt = $http.get("/assets/images/gener

新来的。我正在尝试将数据传递到工厂以供使用。我试图在angular中使用$http以特定顺序触发事件。我被指向使用.run进行第一次填充的方向,将其传递到工厂,然后工厂将其传递到控制器。工厂有一个功能,允许我“刷新”与控制器共享的数据

我在设置刷新功能时得到了一些很大的帮助,但我正在努力让数据最初填充。以下是我的尝试:

.run("getDataForLevels", function($http){
    var getIt = $http.get("/assets/images/generated.json")
        .success(function(data){
            return data;
        });
    return getIt;
})
.factory("UserService", function($http, getDataForLevels) {

    dataFactory = getDataForLevels;
    dataFactory.currentData = null;

    dataFactory.update = function () {
        return $http.get("/assets/images/generated.json")
            .success(function(data){
                dataFactory.currentData = data;
                return data;
            });
    };

    return dataFactory;

});

然后,我将UserService的依赖项添加到控制器,并将数据传递到控制器。我似乎在打赌这是一个错误。任何/所有的帮助都将不胜感激。谢谢

你不能这样做:

.run("getDataForLevels", function($http){
    var getIt = $http.get("/assets/images/generated.json")
    .success(function(data){
        return data;

        });
    return getIt;
})
它只接受一个参数作为函数

您可以这样做:

.run(function($http,$rootScope){
    $http.get("/assets/images/generated.json")
    .success(function(data){
        $rotScope.data=data;

        });
})

.factory("UserService", function($http, $rootScope) {



    dataFactory.update = function () {
        return $http.get("/assets/images/generated.json")

    };

    return dataFactory;

});
var dataFactory = $rootScope.data;
    dataFactory.currentData = null;
UserService.update ()
        .success(function(data, status, headers) {
        console.log(data);
      })
      .error(function(data, status, headers, config) {
        console.error('error in loading File list');
      });
在控制器中,插入依赖项并执行以下操作:

.run(function($http,$rootScope){
    $http.get("/assets/images/generated.json")
    .success(function(data){
        $rotScope.data=data;

        });
})

.factory("UserService", function($http, $rootScope) {



    dataFactory.update = function () {
        return $http.get("/assets/images/generated.json")

    };

    return dataFactory;

});
var dataFactory = $rootScope.data;
    dataFactory.currentData = null;
UserService.update ()
        .success(function(data, status, headers) {
        console.log(data);
      })
      .error(function(data, status, headers, config) {
        console.error('error in loading File list');
      });

这似乎不会使初始的get fire在初始化之前启动,因为如果我在控制器中放入日志,userService返回将返回为未定义。我需要在工厂使用之前填充数据的东西,比如a.then.This。这会删除控制器之间的双向数据绑定,我只想在控制器请求并使用数据之前将数据加载到控制器中,然后能够刷新两个控制器之间使用的数据。似乎每个控制器都有一个控制器你能给我看看控制器吗?在控制器请求并使用数据之前加载数据是什么意思?在请求完成之前,您不可能也不希望延迟控制器的创建。如果您使用的是
dataFactory.currentData
,则对象将在更新中更改。如果您将
dataFactory
本身放在您的作用域中,那么您应该能够绑定到
dataFactory.currentData.userName