在AngularJS中访问模板中的常量?
我有以下代码: Javascript在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
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
我无法在控制器外部设置常数?不,您不能。您需要定义一个。