Вопрос
Я только что узнал, что вы можете иметь необязательное "обратное" или обратное связывание через:
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
, не могут быть оценены.