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

前端之家收集整理的这篇文章主要介绍了角度指令隔离范围的可选双向约束前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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 …

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

猜你在找的Angularjs相关文章