Angularjs 将元素的Id属性设置为控制器中的变量
更新#2: 有时使用Angularjs 将元素的Id属性设置为控制器中的变量,angularjs,angularjs-directive,Angularjs,Angularjs Directive,更新#2: 有时使用模板:'效果很好,变量被输入到模板中,而其他时候它不起作用,ID被设置为ID=“{vm.divId}}”。我仍然没有弄清楚是什么让它有时起作用,而不是其他的 原职 我有一个简单的指令,它需要模板中的一个元素来动态设置ID。我想这很简单,但不管我做什么,变量都不会插值 我尝试过像这样设置ID,template:“像这样template:”和这两种方法的一些变体,但似乎都不起作用 以下是指令: .directive('gMap', function() { return
模板:'
效果很好,变量被输入到模板中,而其他时候它不起作用,ID被设置为ID=“{vm.divId}}”
。我仍然没有弄清楚是什么让它有时起作用,而不是其他的
原职
我有一个简单的指令,它需要模板中的一个元素来动态设置ID。我想这很简单,但不管我做什么,变量都不会插值
我尝试过像这样设置ID,template:“
像这样template:”
和这两种方法的一些变体,但似乎都不起作用
以下是指令:
.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>'
};
})
指令('gMap',函数(){
返回{
限制:'E',
范围:{
“选项”:“=”
},
是的,
controllerAs:'vm',
bindToController:对,
控制器:功能(映射服务){
console.log(this.options.mapId);//记录指定的ID
this.divId=this.options.mapId;
},
模板:“”
};
})
更新:
我将我的代码剪切并粘贴到plunkr中,它在那里工作正常,因此它一定是本指令之外的其他内容,但我不知道从何处开始您在元素中实际看到了什么?@Phil我看到了这个
您的控制台中没有错误?如果您已经确定问题的原因与问题中的代码无关,则不太可能得到答案。没有错误,但它现在可以工作。不知道为什么它以前不工作,或者是什么原因导致它开始工作,但我今天又试了一次,一切都很好。现在它又不工作了