将父范围变量作为属性传递给指令

时间:2014-07-25 19:25:08

标签: javascript angularjs angularjs-directive angularjs-scope

我想构建我自己的使用ng-model的Angular复选框。 (此处有文档:Checkbox in Angular

我已经构建了我的按钮,但我不确定如何将其链接到ng-model。 Here's a plunker of what I have so far

我希望能够像使用ng-model那样传入角度变量作为属性:

<fl-toggle text="change the boolean!" ng-model="theBoolean"></fl-toggle>

然后,在&#34;链接&#34;在指令中通过执行类似的操作来修改变量(但这不起作用)

link: function(scope,elem,attrs) {
    elem.bind('mouseup', function() {
        if (attrs.ngModel === true) {
            attrs.ngModel = false;
        } else {
            attrs.ngModel = true;
        }
    });
}

我知道我可以使用ng-click来完成相同的结果,但这感觉更正式。有可能吗?

由于

1 个答案:

答案 0 :(得分:0)

ng-model实际上有一个与之关联的控制器,你可以使用以下语法在你的指令中要求它:

{
  require:'ngModel'
  link:function(scope, elem, attrs, ngModelCtrl){
     //ngModelCtrl will be passed in automatically
  }
}

这将传入ngModelController的实例,以便在您的指令中使用。您可以使用它来管理模型和视图之间的交互。