我正在使用ember-cli:2.5.0和ember-validation:v2.0.0-alpha.5 在我的餘燼組件中,我有一個自動運行的驗證每個屬性的變化,但我想運行此驗證,只有當我在技術術語調用驗證懶惰地調用「驗證()」方法。Ember驗證如何實現延遲驗證
請找到下面的代碼樣本,
import Ember from 'ember';
import EmberValidations, { validator } from 'ember-validations';
export default Ember.Component.extend(EmberValidations, {
didReceiveAttrs() {
this.set('newBook', this._bookModel().create());
},
_bookModel(data = {}) {
return Ember.Object.extend(EmberValidations, {
bookVersion: null,
isEditable: false,
validationActive: false,
validations: {
bookVersion: {
inline: validator(function() {
if(this.validationActive){ //Here this.validationActive always return undefined
var version = this.model.get('bookVersion') || "",
message = [];
if (Ember.isEmpty(bookVersion)) {
message.push("Book Version is mandatory!!!");
}
if (message.length > 0) {
return message.join(',');
}
}
})
}
}
}, data);
}
});
actions: {
this.get('newBook').set("validationActive",true);
this.get('newBook').validate().then(() => {
//Do the action
}
}
我想上面的驗證,只能運行調用 「this.get( 'newBook')。驗證()」。我完全不熟悉如何貶低投票人,請在您投票之前先將您的意見投給其他人,然後請其他代碼示例讓我知道。
你的幫助應該是可觀的。
我不能關聯你的答案和我的問題,因爲我使用內聯驗證器抱歉我的錯誤理解。我沒有找到任何有關條件內聯驗證器的文檔,而是我可以找到條件驗證。我根據你的回答更新了我的問題,但是我總是在if條件中得到「未定義」。請糾正我並幫助我脫離這種情況。 – VelNaga
請參閱我已更新的關於您的編輯的部分。 – alptugd
@alptugx它像一個魅力工作,非常感謝您的幫助。我還有一個查詢,你知道如何清除這些驗證錯誤? – VelNaga