更新#2:
有时使用template: '<div id="{{vm.divId}}"></div>'
工作正常,变量输入到模板中,有时它不起作用,而不是使用变量将ID设置为id="{{vm.divId}}"
。我仍然无法弄清楚是什么让它有时起作用而不是其他人
我有一个简单的指令,需要模板中的元素动态设置ID。我认为这很简单,但无论我做什么,变量都不会内插。
我尝试设置这样的ID,template: '<div id="{{vm.divId}}"></div>'
就像这样template: '<div ng-attr-id="{{vm.divId}}"></div>
以及两者的多种变体,但似乎都没有。
这是指令:
.directive('gMap', function() {
return {
restrict: 'E',
scope: {
'options': '='
},
transclude: true,
controllerAs: 'vm',
bindToController: true,
controller: function(mapService) {
console.log(this.options.mapId); // This logs the specified ID
this.divId = this.options.mapId;
},
template: '<div id="{{vm.divId}}"></div><div ng-transclude></div>'
};
})
更新 我将我的代码剪切并粘贴到plunkr中,它在那里工作正常所以它必须是这个指令之外的其他东西,但我不知道从哪里开始