Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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/23.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 AngularJS.value():未在控制器中获取更新/修改的值_Javascript_Angularjs_Angularjs Routing - Fatal编程技术网

Javascript AngularJS.value():未在控制器中获取更新/修改的值

Javascript AngularJS.value():未在控制器中获取更新/修改的值,javascript,angularjs,angularjs-routing,Javascript,Angularjs,Angularjs Routing,我在AngularJS应用程序中使用了Value()模块。 我已声明并修改了该值,但无法在控制器中检索已修改或最新的值 流程如下: 步骤1:使用.Value(“键”:“值”)初始化值 步骤2:修改运行块中的值。如果在这一步中执行console.log(),我将获得所需的输出。这意味着该值正在更新 第3步:访问控制器中修改的或最新的值,以便进一步处理 我在下面的代码中提到了这些步骤 app.module.js (function () { "use strict"; ang

我在AngularJS应用程序中使用了Value()模块。 我已声明并修改了该值,但无法在控制器中检索已修改或最新的值

  • 流程如下:

  • 步骤1:使用.Value(“键”:“值”)初始化值
  • 步骤2:修改运行块中的值。如果在这一步中执行console.log(),我将获得所需的输出。这意味着该值正在更新
  • 第3步:访问控制器中修改的或最新的值,以便进一步处理
我在下面的代码中提到了这些步骤

app.module.js

(function () {
    "use strict";

    angular
        .module("app", [
            "app.authentication"
        ])

        //STEP 1: Initialize the Value.
        .value("errorCollectionObject", {})

        .run(getErrorCollection)


    function getErrorCollection($rootScope, $location, $http, errorCollectionObject) {

        $rootScope.$on('$routeChangeStart', function (event, next, current) {
            $http.get("../app/core/error-collection.json")
                .then(function (response) {

                    //STEP 2: Modify/Update the Value.
                    errorCollectionObject = response.data; 

                });
        });
    }
})();
(function () {
    "use strict";

    angular
        .module("app.authentication")
        .controller("LoginController", LoginController)

    LoginController.$inject = ["errorCollectionObject"];

    function LoginController(errorCollectionObject) {

        var vm = this;

        //STEP 3: Use the Modified or Latest Value
        //But instead of getting the Modified value, I am getting the null Object {} that I initialized in STEP 1.
        console.log(errorCollectionObject);
        //Output is: {}

    }

})();
login.controller.js

(function () {
    "use strict";

    angular
        .module("app", [
            "app.authentication"
        ])

        //STEP 1: Initialize the Value.
        .value("errorCollectionObject", {})

        .run(getErrorCollection)


    function getErrorCollection($rootScope, $location, $http, errorCollectionObject) {

        $rootScope.$on('$routeChangeStart', function (event, next, current) {
            $http.get("../app/core/error-collection.json")
                .then(function (response) {

                    //STEP 2: Modify/Update the Value.
                    errorCollectionObject = response.data; 

                });
        });
    }
})();
(function () {
    "use strict";

    angular
        .module("app.authentication")
        .controller("LoginController", LoginController)

    LoginController.$inject = ["errorCollectionObject"];

    function LoginController(errorCollectionObject) {

        var vm = this;

        //STEP 3: Use the Modified or Latest Value
        //But instead of getting the Modified value, I am getting the null Object {} that I initialized in STEP 1.
        console.log(errorCollectionObject);
        //Output is: {}

    }

})();

知道出了什么问题吗?还是我以错误的方式实施了这个概念?任何帮助都将不胜感激。

我以错误的方式实现了价值模块的概念。在我的实现方法中,值不是通过引用传递的。因此,我没有得到修改或更新的值

为了通过引用传递值并实现上述功能,请修改以下步骤:

第1步:

var errObj = {errorCollection: null};
.value("errorCollectionObject", errObj)
errorCollectionObject.errorCollection = response.data;
console.log(errorCollectionObject.errorCollection);
第二步:

var errObj = {errorCollection: null};
.value("errorCollectionObject", errObj)
errorCollectionObject.errorCollection = response.data;
console.log(errorCollectionObject.errorCollection);
第三步:

var errObj = {errorCollection: null};
.value("errorCollectionObject", errObj)
errorCollectionObject.errorCollection = response.data;
console.log(errorCollectionObject.errorCollection);
您将在步骤3中获得修改或更新的值。 希望它能帮助别人。:)