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

时间:2016-07-27 06:32:35

标签: 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)") Test

它会给我未定义。

这样做的正确方法是什么?

3 个答案:

答案 0 :(得分:0)

  

这样做的正确方法是什么?

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

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

答案 1 :(得分:0)

在控制器中注入该常量,然后就可以使用它 并且您正在调用属于控制器的函数,因此为了使用该常量,您必须注入帽子值。

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

答案 2 :(得分:0)

要在html模板中使用角度常量,我们必须首先在$ 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>