1
我試圖建立一個視圖,最初將顯示文本。如果用戶雙擊,它將用輸入字段替換該文本。這樣用戶可以輕鬆更新文本(如使用「contenteditable」屬性)。Ember RC1中的Ember.TextField綁定已更改?
我有一種方法可以在Ember pre4中使用,但不能在Ember RC1中使用。在RC1中,Ember.TextField不會初始化爲父視圖的value屬性。當您雙擊標籤文本時,它會創建一個空的輸入字段。這裏有兩個小提琴:
- PRE4(工作):http://jsfiddle.net/mattsonic/cq5yy/5
- RC1(相同的代碼 - 不工作):http://jsfiddle.net/mattsonic/UUac9/15
任何想法裏面灰燼哪些改變呢?謝謝。
下面是代碼:
App.InputView = Ember.TextField.extend({
classNames: ["input-small"],
valueBinding: "parentView.value",
didInsertElement: function() {
this.$().focus()
},
focusOut: function() {
parent = this.get("parentView");
parent.setLabelView();
}
});
App.LabelView = Ember.View.extend({
tagName: "span",
template: Ember.Handlebars.compile("{{view.value}}"),
valueBinding: "parentView.value",
doubleClick: function() {
parent = this.get("parentView");
parent.setInputView();
}
});
App.LabelEditView = Ember.ContainerView.extend({
tagName: "span",
labelView: App.LabelView.extend(),
inputView: App.InputView.extend(),
didInsertElement: function() {
this.setLabelView();
},
setInputView: function() {
this.set("currentView", this.get("inputView").create());
},
setLabelView: function() {
this.set("currentView", this.get("labelView").create());
}
});