2016-01-24 12 views
9

Dal v1.4 angolare, è possibile fare questo:direttive angolari: portata vs bindToController

scope: {}, 
bindToController: { 
    name: "=" 
} 

invece di vecchio modo di fare:

scope: { 
    name: "=" 
}, 
bindToController: true 

Tranne essere più intuitiva, c'è qualche differenza tra loro?

+1

In teoria, potresti passare molti parametri alla direttiva e legarli solo alcuni al controller. Non riesco a pensare a nessuna ragione valida per farlo, ma è possibile. Con la sintassi originale, era tutto o niente. – Claies

+1

http://blog.thoughtram.io/angularjs/2015/01/02/exploring-angular-1.3-bindToController.html controlla questo articolo perspicace per un po 'di spiegazione – Yerken

+0

Possibile duplicato di [bindToController: Oggetto nelle direttive] (http : //stackoverflow.com/questions/31414115/bindtocontroller-object-in-directives) – estus

risposta

6

Pensate a bindToController come a un percorso di migrazione per la versione futura di Angular.

Preferiamo scrivere direttive (o componenti) con ambito isolato e associare al controllore le proprietà che si desidera passare.

Le variabili di rilegatura dall'ambito scompariranno gradualmente.

Nella nuova versione di angular (1.5) non è necessario utilizzare scope o bindToController, poiché l'ambito è isolato per impostazione predefinita e per le variabili di binding al controller è possibile utilizzare i binding.

Questo è anche utile per evitare l'utilizzo di $ scope. Leggi questo articolo se desideri maggiori informazioni al riguardo: https://toddmotto.com/no-scope-soup-bind-to-controller-angularjs/