角度指令隔离范围的可选双向约束

我刚刚知道,您可以通过以下方式提供可选的“反向”或回调绑定

scope: { parentScopeFunc: '&?' }

我试图看看是否有办法做一些类似于双向绑定的事情。

scope: { optional2WayBoundProp: '=?' }

我试着用link函数的元素& attrs params但是我失去了双向绑定回父母。该方法仅允许父对子更新。那么我也可以使用@ scope机制。

编辑

我发现这个问题Angular JS directive, change a 2 way data binding in the link function,以便回答关于=?的主要问题。但是,它不能解决’可选’非绑定值,如true或false。

目标

这是我要完成的:

>编写一个面板指令,它可以将标题区域中的内容转发出去,并且可以折叠:

<我的-面板>
  < transcluded报头内容/>
  < button ng-click =“toggleCollapse()”/>
  < transcluded-body-content ng-if =“isExpanded”/>
&LT / MY-面板>
>在某些情况下,我想将面板实例的折叠状态缓存在父范围内(因此双向绑定,视图的控制器可以确定如何缓存此信息):
< my-panel is-expanded =“parentScopeProp”>
>在其他情况下,我可能只想声明它没有绑定到父范围属性或者我可能根本不声明它在这种情况下,它假定它被展开。
< my-panel is-expanded =“true / false”>

我明白,通过使用=赋值,表达式如undefined,true&假不能评估。

‘=?’是一个有效的范围分配从ng 1.2.x …

…对于从一个可选的双向绑定来插入一个表达式的手段的能力,这仍然是抓住的。

http://stackoverflow.com/questions/26804420/optional-two-way-binding-on-isolate-scope-for-angular-directive

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:角度指令隔离范围的可选双向约束