2016-01-24 18 views
9

Seit Angular v1.4, es möglich ist, dies zu tun:Angular Richtlinien: scope vs bindToController

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

statt alte Art und Weise zu tun:

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

Außer intuitiver zu sein, gibt es eine Unterschied zwischen ihnen?

+1

Sie könnten theoretisch viele Parameter an die Direktive übergeben und nur einige davon an den Controller binden. Ich kann mir keinen gültigen Grund dafür vorstellen, aber es ist möglich. Bei der ursprünglichen Syntax war alles oder nichts. – Claies

+1

http://blog.Thoughtram.io/angularjs/2015/01/02/Exploring-angular-1.3-bindToController.html Checkout diesen aufschlussreichen Artikel für ein wenig Erklärung – Yerken

+0

Mögliche Duplikat von [BindToController: Objekt in Richtlinien] (http : //stackoverflow.com/questions/31414115/bindtocontroller-object-in-directives) – estus

Antwort

6

Denken Sie über BindToController als Migrationspfad für zukünftige Version von Angular.

Wir bevorzugen es, Direktiven (oder Komponenten) mit isoliertem Gültigkeitsbereich zu schreiben und die zu übergebenden Eigenschaften an den Controller zu binden.

Bindende Variablen aus dem Oszilloskop verschwinden allmählich.

In der neuen Version von Winkeln (1,5), die Sie brauchen, um Umfang oder bindToController nicht zu verwenden, da der Spielraum für Ausfall- und für Bind-Variablen isolieren Sie Bindungen verwenden den Controller können.

Dies ist auch nützlich, um die Verwendung von $ scope zu verhindern. Lesen Sie diesen Artikel, wenn Sie weitere Informationen dazu benötigen: https://toddmotto.com/no-scope-soup-bind-to-controller-angularjs/

Verwandte Themen