AngularJS .value (): не получено Обновленное / Измененное значение в Контроллере - PullRequest
0 голосов
/ 18 мая 2018

Я использовал модуль Value () в своем приложении AngularJS.Я объявил и изменил значение, но я не могу получить измененное или последнее значение в контроллере.

  • Поток выглядит следующим образом:

    1. ШАГ 1: Инициализировать значение с помощью .value («ключ»: «значение»)
    2. ШАГ 2: Изменить значение в блоке RUN.Если я выполняю console.log () в этом STEP, я получаю желаемый результат.Это означает, что значение обновляется.
    3. ШАГ 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; 

                });
        });
    }
})();

login.controller.js

(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 Ответ

0 голосов
/ 18 мая 2018

Я реализую концепцию модуля стоимости в неправильном пути. В моем методе реализации значение не передается по ссылке. И поэтому я не получаю измененное или обновленное значение.

Чтобы передать значение по ссылке и достичь вышеупомянутой функциональности, измените шаги, как показано ниже:

ШАГ 1:

var errObj = {errorCollection: null};
.value("errorCollectionObject", errObj)

ШАГ 2:

errorCollectionObject.errorCollection = response.data;

ШАГ 3:

console.log(errorCollectionObject.errorCollection);

Вы получите измененное или обновленное значение на шаге 3. Надеюсь, это кому-нибудь поможет. :)

...