Ответ 1
'=?'
- допустимое присвоение области действия по адресу ng 1.2.x...
... как для возможности иметь средство интерполяции выражения из необязательного двустороннего связывания, которое все еще доступно для захватов.
Я только что узнал, что вы можете иметь необязательное "обратное" или обратное связывание через:
scope: { parentScopeFunc: '&?' }
Я пытаюсь понять, есть ли способ сделать что-то подобное с привязкой в 2-х направлениях.
scope: { optional2WayBoundProp: '=?' }
Я попробовал с параметрами link element
и attrs
, но затем я потерял привязку с двумя каналами назад к родительскому. Этот метод допускает только обновления от родителя к ребенку. Тогда я мог бы просто использовать механизм видимости @
.
Я нашел этот вопрос Angular JS директива, измените привязку данных в 2-х направлениях в функции ссылок, чтобы ответить на главный вопрос относительно =?
. Однако он не решает "необязательное" значение без привязки, например true
или false
.
Вот что я пытаюсь выполнить:
написать директиву панели, которая передает содержимое и сворачивается в стороне от области заголовка:
<my-panel>
<transcluded-header-content/>
<button ng-click="toggleCollapse()"/>
<transcluded-body-content ng-if="isExpanded"/>
</my-panel>
В некоторых случаях я хочу кэшировать свернутое состояние экземпляра панели в родительской области (следовательно, двухсторонняя привязка, где контроллер представления может определить, как кэшировать эту информацию):
<my-panel is-expanded="parentScopeProp">
<my-panel is-expanded="true/false">
Я понимаю, что с помощью назначения =
выражения, подобные undefined
, true
и false
, не могут быть оценены.
'=?'
- допустимое присвоение области действия по адресу ng 1.2.x...
... как для возможности иметь средство интерполяции выражения из необязательного двустороннего связывания, которое все еще доступно для захватов.