Дополнительное двустороннее связывание на изолирующей области для угловой директивы
Я только что узнал, что вы можете иметь необязательную привязку обратного или обратного вызова через:
scope: { parentScopeFunc: '&?' }
Я пытаюсь увидеть, есть ли способ сделать что-то подобное с 2-сторонней привязкой.
scope: { optional2WayBoundProp: '=?' }
Я пытался с помощью функции ссылкиelement
& attrs
params, но потом я теряю двустороннюю привязку к родителю. Этот метод допускает только обновления от родителей к детям. Тогда я мог бы просто использовать@
механизм действия.
Я нашел этот вопросAngular JS директива, изменение двухсторонней привязки данных в функции ссылки так что отвечает на главный вопрос относительно=?
, Однако это не решает необязательное необязательное значение, такое как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
не может быть оценено.