带有ng-attr的Angular指令绑定到模型

Ale*_*ato 4 angularjs angularjs-directive

所有代码和预览在plunker

我想将一个属性双重绑定到指令范围,并从外部更改该属性,它会更改指令内的某些内容.

<body ng-app="paneApp" ng-controller="AppCtrl">

  <div class="btn-group">
    <button type="button" class="btn btn-primary" ng-model="pane.a" btn-checkbox>A</button>
    <button type="button" class="btn btn-primary" ng-model="pane.b" btn-checkbox>B</button>
    <button type="button" class="btn btn-primary" ng-model="pane.c" btn-checkbox>C</button>
    <button type="button" class="btn btn-primary" ng-model="pane.d" btn-checkbox>D</button>
  </div> 

  Visible: {{pane.a}} {{pane.b}} {{pane.c}} {{pane.d}}

  <pane-container>
    <pane ng-attr-hidden="{{pane.a}}">A</pane>
    <pane>B</pane> 
    <pane>C</pane>
    <pane>D</pane>
  </pane-container>
</body>
Run Code Online (Sandbox Code Playgroud)

这里的错误是:

Error: [$parse:syntax] Syntax Error: Token 'pane.a' is unexpected, expecting [:] at column 3 of the expression [{{pane.a}}] starting at [pane.a}}].
Run Code Online (Sandbox Code Playgroud)

如果没有在attirbute中使用表达式,则所有表达式都按预期工作:

        <pane ng-attr-hidden="{{pane.a}}">A</pane>
Run Code Online (Sandbox Code Playgroud)

编辑:

此示例按预期工作:在plunker中预览

Phi*_*eck 7

我假设ng-attr-hidden期望一个角度表达式,但你给它一个对象定义.
尝试删除{{}}

<pane ng-attr-hidden="pane.a">A</pane>
Run Code Online (Sandbox Code Playgroud)