,我該如何停止輸入欄的編輯,以自動接受更改我有一個輸入可以主動編輯模型的名稱。 問題是,如果我開始鍵入輸入,則輸入接受更改。Ember.js - 如果我輸入
因此,編寫一個值爲「Something Else」的categoryName(屬性爲recordCategory)將是一件大事,因爲我需要在每次輸入字母后重新關注edit-recordCategory輸入。因此,如果我將注意力集中在輸入上,並且我會很快鍵入「Some」,它會在將我從輸入中排除出來之前接受'S',並根據它的當前值在列表中使用recordCategory,這隻會是「 S」。
下面是我的代碼更詳細的例子。
{{#each searchResults itemController="recordCategory"}}
<div id="hoveredRow" {{bind-attr class="isEditing:editing"}}>
{{#if isEditing}}
<div class="input-standard">
{{edit-recordCategory value=categoryName focus-out="acceptChanges"
insert-newline="acceptChanges"}}
</div>
{{else}}
{{categoryName}}
{{/if}}
</div>
{{/each}}
這是我的控制器
isEditing: false,
actions: {
editrecordCategory: function(recordCategory){
this.set('isEditing', true);
console.log(this.get('isEditing is toggling'))
},
acceptChanges: function() {
this.set('isEditing', false);
if (Ember.isEmpty(this.get('model.categoryName'))) {
this.send('removerecordCategory');
} else {
this.get('model').save();
}
console.log(this.get('isEditing'))
},
}
,然後認爲定義edit-recordCategory
VpcYeoman.EditRecordCategoryView = Ember.TextField.extend({
didInsertElement: function() {
this.$().focus();
}
});
Ember.Handlebars.helper('edit-recordCategory', VpcYeoman.EditRecordCategoryView);
編輯:
實施GJK版的 '在acceptChanges' 行動後。我收到了同樣的問題。
TEST 1
我註釋掉在acceptChanges作用以及兩者的它引用在{{edit-recordCategory value=categoryName focus-out="acceptChanges" insert-newline="acceptChanges"}}
使得它只是{{edit-recordCategory value=categoryName}}
。 同樣的問題仍在發生。這導致我相信問題不像acceptChanges寫的那樣。
有一個地步,我原來的「在acceptChanges」行動及其使用
{{edit-recordCategory value=categoryName focus-out="acceptChanges"
insert-newline="acceptChanges"}}
完美。
TEST 2
在取出 '在acceptChanges' 的任何參考頂部,我除去{{的#if編輯}}有條件的。該
{{edit-recordCategory value=categoryName focus-out="acceptChanges"
insert-newline="acceptChanges"}}
沒有在打字(如其中不存在燼有條件的預期,但{{edit-recordCategory}}
仍然當我輸入自動提交消失。還應當指出的是,recordCategories種類本身這個名單,所以在接受了編輯,我專注出來{{edit-recordCategory}}
和本身基於它的對象Resorts的新類別名稱值
發現問題!但它打破了我的過濾器吧。
一旦我註釋掉這個函數
searchResults: function() {
var searchTerm = this.get('searchTerm');
var regExp = new RegExp(searchTerm,'i');
// We use `this.filter` because the contents of `this` is an array of objects
var filteredResults = this.filter(function(category) {
return regExp.test(category.get('categoryName'));
});
return filteredResults;
}.property('@each.categoryName', 'searchTerm'),
並且將'searchResults'中的{{#each searchResults itemController="recordCategory"}}
中的編輯工作順利進行,但現在我的搜索欄過濾器無法正常工作。
爲什麼我低調? –