簡體   English   中英

Ember.js:如何觀察輸入字段中的值何時更改

[英]Ember.js: How to observe when a value in an input field changes

我需要在Ember.js應用程序中創建一個簡單的HTML輸入文本字段。 此特定輸入框的值未綁定到任何特定模型。 當輸入文本框模糊或失去焦點時,我需要能夠運行一些JavaScript。 到目前為止,在我的模板中:

{{input valueBinding="pitcherSalary" placeholder=0}}

我試圖通過在控制器中執行以下pitcherSalary來觀察pitcherSalary的值,但沒有任何運氣:

MyApp.OptimalController = Ember.ObjectController.extend({
 pitcherSalaryObserver: function () {
    var self = this;
    console.log("changing....");
  }.observes('pitcherSalary'), 
});

正確的做法是什么?

您說它不受某種模型支持,但您的控制器卻說它受某種模型支持。 Ember可能使您感到困惑,它想保存到應該支持控制器的模型,但找不到任何模型。 ObjectController代理到/從控制器到模型的屬性,並且當它沒有模型時,會大喊濫用。

壞:沒有模型的ObjectController

http://emberjs.jsbin.com/niyawido/3/edit

良好:帶有模型的ObjectController

http://emberjs.jsbin.com/niyawido/4/edit

好:沒有模型的控制器

http://emberjs.jsbin.com/niyawido/2/edit

為什么不在輸入標簽中使用普通的舊“值”? 這是一個肥胖的例子,它使用原型擴展使用您想要的可觀察樣式: http : //emberjs.jsbin.com/zuxuli/2/edit

我的輸入:

{{input type=number value=amount placeholder="Billed Amount"}}
{{input type="checkbox" checked=roundTip}} //"checked" is a kind of value attrib

我的觀察值:

observeStuff: function () {
  console.log("blah!!!");
}.observes('roundTip'),

observeStuff2: function () {
  console.log("crap!!!");
}.observes('amount'),

希望這可以幫助。

編輯:請參閱Ember.Observable#addObserver以獲取更好的文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM