将值传递给自定义指令中的ng-model

时间:2014-11-19 16:53:25

标签: angularjs angularjs-directive angularjs-scope

是的,我可能在这里遗漏了一些相当明显的东西,但现在就去了。我有一些来自bootstrap的HTML,我想重用它,所以我想把它变成一个自定义指令。

<label class="toggle">
<input ng-model='model' type="checkbox" class="toggleInput">
    <div class="track">
        <div ng-show="test" class="toggle-label on">
            {{onText}}
        </div>
        <div ng-show="!test" class="toggle-label off">
            {{offText}}
        </div>
    <div class="handle"></div>
</div></label>

html片段我想在我的网页中使用Angular将重新编译到上面的内容:

<toggle on-text="On" off-text="Off" ng-model="myModelName"></toggle>

我的指示如下:

.directive('toggle', function() {
    return {
        restrict: 'AE',
        templateUrl: 'views/toggle.view.html',
        replace: true,
        scope: {
            onText: '@',
            offText: '@',
            ngModel : '=',
        },
    };
});

但是,在查看html标记时,ng-model属性尚未更改为“myModelName”&#39;并且仍然只显示&#39;模态&#39;所以没有更新。

我做错了什么?

全部谢谢

2 个答案:

答案 0 :(得分:0)

尝试替换

<input ng-model='model' type="checkbox" class="toggleInput">

<input ng-model='{{ngModel}}' type="checkbox" class="toggleInput">

因为您希望将传入模型名称的值绑定到指令内模板的ng-model属性中。

答案 1 :(得分:0)

想出来....在链接函数中使用compile来动态地将模型添加到我需要的元素中:

return $compile($('input.toggleInput',element).attr('ng-model', model))(scope);