在網路上查找angularjs全域變數value和constant的差別,答案基本上都是千篇一律
1.value不可以在config裡注入,但是constant可以
2.value可以修改,但constant不可以修改,一般直接用constant配置一些需要常用的數據。
第一點沒什麼問題,但是第二點 這個constant不可以修改是什麼意思?是哪裡不能修改
<!DOCTYPE html>
<html lang="en" ng-app="myapp" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="Scripts/jquery-1.10.2.js"></script>
<script src="base/angular.min.js"></script>
<script type="text/javascript">
var app = angular.module('myapp', []);
app.constant('myConstant', { "value1": "林炳文", "value2": "hello world", value3: 1 });
app.controller('myCtrl1', function ($scope, myConstant) {
$scope.onclick1 = function () {
$scope.value1 = myConstant.value1 + (++myConstant.value3);
myConstant.value1 = $scope.value1;
myConstant.value2 = $scope.value1;
};
});
app.controller('myCtrl2', function ($scope, myConstant) {
$scope.onclick2 = function () {
$scope.value2 = myConstant.value2 + (++myConstant.value3);
myConstant.value1 = $scope.value2;
myConstant.value2 = $scope.value2;
};
});
</script>
</head>
<body>
<p ng-controller="myCtrl1">
<button ng-click="onclick1()">请点击我1</button>
{{value1}}
</p>
<p ng-controller="myCtrl2">
<button ng-click="onclick2()">请点击我2</button>
{{value2}}
</p>
</body>
</html>
自己寫了個小demo,明明在裡面的constant變數可以修改(我這裡測試的是一個對象,換成一個變數值也是可以修改的),不知道是我理解錯誤還是寫錯了地方,這個所謂的不可以修改到底是什麼?
angular.module('myApp', [])
.constant('PI', '3.1415926')
.config(function(PI) {})
.value('name','張三')
constant就是相當於一個常數 constant可以在config的時候被注入使用 而value不行