Дополнительное двустороннее связывание на изолирующей области для угловой директивы

вопрос

Я только что узнал, что вы можете иметь необязательную привязку обратного или обратного вызова через:

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 не может быть оценено.

Ответы на вопрос(1)

Ваш ответ на вопрос