首頁  >  問答  >  主體

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變數可以修改(我這裡測試的是一個對象,換成一個變數值也是可以修改的),不知道是我理解錯誤還是寫錯了地方,這個所謂的不可以修改到底是什麼?

曾经蜡笔没有小新曾经蜡笔没有小新2669 天前1079

全部回覆(1)我來回復

  • 巴扎黑

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

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

    constant就是相當於一個常數 constant可以在config的時候被注入使用 而value不行

    回覆
    0
  • 取消回覆