2013-10-17 118 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绑定。 –