在网上查找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不行