Javascript AngularJS.value():未在控制器中获取更新/修改的值
我在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
- 流程如下:
- 步骤1:使用.Value(“键”:“值”)初始化值
- 步骤2:修改运行块中的值。如果在这一步中执行console.log(),我将获得所需的输出。这意味着该值正在更新
- 第3步:访问控制器中修改的或最新的值,以便进一步处理
(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中获得修改或更新的值。
希望它能帮助别人。:)