Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在AngularJS中访问模板中的常量?_Angularjs - Fatal编程技术网

在AngularJS中访问模板中的常量?

在AngularJS中访问模板中的常量?,angularjs,Angularjs,我有以下代码: Javascript var app = angular.module('myApp'); const TESTCONST = 'test 1'; app.constant("TEST", { "TEST1": "test 1" }); 哈巴狗 这两个 div(ng-click="changeMessageType(TESTCONST)") Test 这个,不起作用: div(ng-click="changeMessageType(TEST.TEST1)") Te

我有以下代码:

Javascript

var app = angular.module('myApp');

const TESTCONST = 'test 1';

app.constant("TEST", {
    "TEST1": "test 1"
});
哈巴狗

这两个

div(ng-click="changeMessageType(TESTCONST)") Test
这个,不起作用:

div(ng-click="changeMessageType(TEST.TEST1)") Test
它会给我一个不明确的答案

正确的方法是什么

正确的方法是什么

正确的方法是使用模板中需要的任何内容设置作用域/控制器属性。因此,您需要在控制器中注入常量,并执行如下操作:

.controller('Controller', function($scope, TEST) {
  $scope.TEST = TEST
})

将该常数注入控制器中,然后就可以使用它了 您正在调用一个属于控制器的函数,所以为了使用该常量,您必须注入hat值

.controller('testctrl', function($scope, TEST) {})

要在html模板中使用角度常数,我们必须首先在$scope中设置它的值,而不仅仅是在模板中使用该scope变量

例如:

angular.module('abc',[])
.constant('abcConstant', function {
    return {
          recordType: {
             MIN : 1,
             FULL : 2
          }
      }
  }
)
.controller('abcController', abcController);

abcController.$inject = ['abcConstant', $scope];

function abcController(abcConstant, $scope){
   $scope.recordTypes = abcConstant.recordType;
   $scope.selectedRecordType = abcConstant.recordType.MIN;
   .....

 }
现在,在html模板中,我可以使用:

 <div ng-if='selectedRecordType == recordTypes.MIN'>Min</div>
Min

我无法在控制器外部设置常数?不,您不能。您需要定义一个。