personalizadas estructurales directivas data crear binding angularjs-directive angularjs-scope transclusion

binding - data - directivas estructurales angular



Enlace bidireccional opcional en el ámbito de aislamiento de la directiva angular (1)

pregunta

Acabo de enterarme de que puede tener un enlace ''inverso'' o de devolución de llamada opcional a través de:

scope: { parentScopeFunc: ''&?'' }

Estoy tratando de ver si hay una manera de hacer algo similar con el enlace de 2 vías.

scope: { optional2WayBoundProp: ''=?'' }

Intenté con el element la función de enlace y los attrs pero luego perdí el enlace de 2 vías con el padre. Ese método solo permite actualizaciones de padres a hijos. Entonces también podría estar usando el mecanismo de alcance.

editar

Encontré esta pregunta Angular JS directiva, cambiar un enlace de datos de 2 vías en la función de enlace para que responda la pregunta principal con respecto a =? . Sin embargo, no resuelve el valor "no enlazado" opcional, como true o false .

metas

Esto es lo que estoy tratando de lograr:

  • escriba una directiva de panel que incluya contenido y sea colapsable aparte del área de encabezado:
    <my-panel> <transcluded-header-content/> <button ng-click="toggleCollapse()"/> <transcluded-body-content ng-if="isExpanded"/> </my-panel>

  • en algunos casos, quiero almacenar en caché el estado contraído de la instancia del panel en un ámbito principal (de ahí el enlace bidireccional donde el controlador de la vista puede determinar cómo almacenar en caché esta información):

    <my-panel is-expanded="parentScopeProp">

  • en otros casos, es posible que solo desee declararlo sin vincularlo a una propiedad de ámbito principal O bien, es posible que simplemente no lo declare, en cuyo caso se supone que está expandido.

    <my-panel is-expanded="true/false">

Entiendo que al usar la asignación = , las expresiones como undefined , true y false no se pueden evaluar.


''=?'' es una asignación de alcance válida a partir de ng 1.2.x ...

... en cuanto a la capacidad de tener un medio para interpolar una expresión de un enlace bidireccional opcional, que todavía está en juego.