我有以下代码:
的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
它会给我未定义。
这样做的正确方法是什么?
答案 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>