2013-10-17 85 views
2

有沒有辦法在HandleBars中指定單向綁定? bind-attr總是調用Ember.bind,它總是創建一個雙向綁定。這似乎是對元素甚至不改變的情況下:在HandleBars中指定單向綁定 - Ember

<img {{bind-attr class=":class-name-to-always-apply"}}>

但是,即使在情況下,元素可以改變,我們也許有理由手動更新(如性能或我們不這樣做想要在textChanged上進行更改,但需要手動更改)

回答

3

有一個{{unbound}}幫助程序,它不會在DOM中放入metamorph腳本,並且在底層值更改時不會更新。

http://emberjs.com/api/classes/Ember.Handlebars.helpers.html#method_unbound

你也可以有你的模板綁定到你的控制器,看起來像一個屬性:

something: Ember.computed.oneWay('somethingElse') 

使用模板

{{input value=something}} 

something將攜帶相同的值。直到您更改文本框中的值爲止。此時,something將帶有與文本框中相同的值,並且somethingElse的值被遺忘。

+2

感謝知道'unbound'是有用的。我想到了第二種選擇,但由於它是爲了我想重用的東西,我不想爲第二個屬性開銷。未綁定的助手並不完全相同,如果我對它的理解正確(即,它不會在任何方向上更新),那更像OneTime綁定而不是OneWay綁定。 –