将指定元素的Id属性设置为指令控制器中的变量

时间:2016-09-12 23:06:26

标签: angularjs angularjs-directive

更新#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中,它在那里工作正常所以它必须是这个指令之外的其他东西,但我不知道从哪里开始

0 个答案:

没有答案