2013-08-27 52 views
-1

在AngularJS,似乎做{{value}}裏面的東西像value=""class=""工作正常,但做這樣的事情:如何讓AngularJS在自定義屬性中呈現變量?

$scope.bar = "1234";

<my-directive foo="{{bar}}" /> 

導致串{{bar}}要傳遞給myDirective而不是字符串值bar

我該如何強制通過bar的值而不是{{bar}}

+0

只需使用'' – zsong

+0

請考慮查看https://github.com/angular/angular.js/wiki/Understanding-Directives –

+0

@sza然後我必須在指令中創建一個隔離範圍,對吧?所以這不是一個選項。 –

回答

1

如果不指定該指令的隔離範圍,你並不需要傳遞一個範圍變量 - 該指令將剛剛得到的繼承範圍,你可以參考一下:

scope.bar 

如果您希望隔離指令作用域並將該變量作爲一個屬性傳遞,您將在指令初始化中執行該操作。

scope: { foo:'=localFoo' } 

然後在指令可以引用「localFoo」作爲該評價結果{{欄}}。

+0

如果我只是從指令中執行'scope.bar',那麼指令將與變量名'bar'緊密結合。如果我想將變量更改爲別的,該指令將無法工作。我只是希望能夠將字符串的值傳遞給指令。 –

+0

然後,您將不得不隔離指令作用域並將其作爲屬性傳遞。在指令中使用範圍對象並對其執行雙向綁定。 – BoxerBucks

+0

不,因爲在某些情況下,我不會有一個變量傳遞給指令,我只需要輸入一個字符串。在其他情況下,我將有一個變量。所以在兩種情況下使它工作的唯一方法是傳入變量的字符串值。 –