我有以下JS
對象:敲除驗證內可觀察到的驗證沒有triggred
var Player = function() {
var self = this;
self.FirstName= ko.observable().extend({
required: {
message: 'Player First Nameis required.'
}
});
self.LastName= ko.observable().extend({
required: {
message: 'Player Last Name is required.'
}
});
}
:
var form= function() {
var self = this;
self.Name = ko.observable().extend({
required: {
message: 'Name is required.'
}
});
self.Manager = ko.observable().extend({
required: {
message: 'Manager is required.'
}
});
self.Email = ko.observable().extend({
required: {
message: 'Email is required.'
},
email: {
message: 'Entered Email is not valid.'
}
});
self.Players = ko.observableArray([]);
}
Players
陣列在上述JS
目的是使用以下JS
對象使用new Player()
語法填充
我已經使用了knockout-validation
庫的以下設置:
ko.validation.init({
registerExtenders: true,
messagesOnModified: true,
insertMessages: false,
parseInputAttributes: true,
messageTemplate: null,
decorateInputElement: true,
errorElementClass: 'error',
grouping: {
deep: true,
observable: true
}
}, true);
我使用viewModel.errors.showAllMessages()
來顯示視圖模型中的所有錯誤消息。我面臨的問題是player
對象的驗證沒有被觸發,因爲它存在於Form
對象中。我甚至將deep
屬性設置爲true
,但即使這樣做不起作用,可能會出現什麼問題?
你可以設置一個有用的小提琴嗎?即使你使用'validatedObservable'。 –
請嘗試將您的代碼擴展到[mcve]。如果我自己這樣做,並添加缺少的部分來啓動和運行(但堅持你提供的代碼逐字),[它按預期工作,玩家姓氏得到驗證就好](https://jsfiddle.net/jeroenheijmans/2a7t72be /)。 – Jeroen