搜索

首页  >  问答  >  正文

javascript - angularjs中value和constant的区别(主要是能不能修改的问题)

在网上查找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变量可以修改(我这里测试的是一个对象,换成一个变量值也是可以修改的),不知道是我理解错误还是写错了地方,这个所谓的不可以修改到底是什么?

曾经蜡笔没有小新曾经蜡笔没有小新2750 天前1164

全部回复(1)我来回复

  • 巴扎黑

    巴扎黑2017-06-08 11:04:13

    angular.module('myApp', [])
    .constant('PI', '3.1415926')
    .config(function(PI) {})
    .value('name','张三')

    constant就是相当于一个常量 constant可以在config的时候被注入使用 而value不行

    回复
    0
  • 取消回复