gpt4 book ai didi

javascript - 为什么 angularjs 值在 app.run 方法中没有改变

转载 作者:行者123 更新时间:2023-11-28 19:01:13 24 4
gpt4 key购买 nike

我创建了一些名为信息的值并尝试编辑它。然而它在 Controller 中不起作用。然后,下面的示例不起作用。

(function () {
var app = angular.module('app', []);

app.value('information', []);

app.run(['information', function (information) {
information = [1, 2, 3, 4];
}]);

app.controller('myController', [
'$scope', 'information', function ($scope, information) {
$scope.inf = information;
}]);
})();
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-app="app">
<div ng-controller="myController">
<p ng-repeat="i in inf">
{{ i }}
</p>
</div>
</body>
</html>

最佳答案

因为当您注入(inject)信息时,它是对存储在Angular缓存中的信息对象的引用

我不建议从 Controller 修改(尽管您可以: JSFiddle )。

你最好使用工厂:

app.factory('information', function () {
var info = [];
return {
get: function () {
return info;
},
set: function (newInfo) {
info = newInfo;
}
};
});

在 Controller 内部,使用 information.get()information.set() 来实现这一目的。

关于javascript - 为什么 angularjs 值在 app.run 方法中没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32498926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com