2016-01-24 169 views
9

由於角V1.4,這是可以做到這樣的:做的角指令:範圍VS bindToController

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

代替舊的方式:

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

除了更加直觀,沒有任何他們之間的區別?

+1

理論上,你可以將許多參數傳遞給指令,並且只將其中一些參數綁定到控制器。我想不出任何有效的理由來做到這一點,但這是可能的。用原來的語法,它是全部或沒有。 – Claies

+1

http://blog.thoughtram.io/angularjs/2015/01/02/exploring-angular-1.3-bindToController.html查看這篇有見解的文章,提供一些解釋 – Yerken

+0

[bindToController:指令中的對象](http ://stackoverflow.com/questions/31414115/bindtocontroller-object-in-directives) – estus

回答

6

將bindToController想象爲未來版本Angular的遷移路徑。

我們更喜歡使用隔離範圍編寫指令(或組件),並將控制器綁定到要傳遞的屬性。

範圍內的綁定變量將逐漸消失。

在angular(1.5)的新版本中,您不需要使用scope或bindToController,因爲範圍對於默認值是隔離的,對於控制器的綁定變量,您可以使用綁定。

這對防止使用$ scope也很有用。閱讀這篇文章,如果你想了解更多有關信息:https://toddmotto.com/no-scope-soup-bind-to-controller-angularjs/