ошибки проверки нокаута для наблюдаемых внутри объектов массива

Я использую библиотеку проверки [Knockout Validation][1] с Knockout 2. Хотя пользовательский интерфейс правильно отображает ошибку проверки для наблюдаемых свойств внутри массива объектов. Функция ko.validation.group не отслеживает эти ошибки. Глядя на источник, я вижу, что он проверяет только наблюдаемость самого объекта массива, а не внутренние наблюдаемые свойства.

У меня есть массив этих

function Game(bowlerId, name, g1, g2, g3, g4) {
    this.BowlerId = bowlerId;
    this.Name = name;
    this.Game1 = ko.observable(g1).extend({ required: true, min:1, max:300  });
    this.Game2 = ko.observable(g2).extend({ required: true, min: 1, max: 300 });
    this.Game3 = ko.observable(g3).extend({ required: true, min: 1, max: 300 });
    this.Game4 = ko.observable(g4).extend({ required: true, min: 1, max: 300 });

}

который я использую как:

viewModel.errors = ko.validation.group(viewModel.Games);

или нравится

viewModel.errors = ko.validation.group(viewModel);

В любом случае отдельные свойства (Game1, Game2 и т. д.) выше не отслеживаются в ошибках, возвращаемых групповой функцией. Однако ошибки проверки появляются в пользовательском интерфейсе. В настоящее время мне нужно запросить DOM, чтобы узнать, не вызвал ли пользователь ошибку проверки. Есть ли способ заставить это работать?


person Pablo    schedule 02.06.2012    source источник


Ответы (1)


ты пытался?

viewModel.errors = ko.validation.group(viewModel.Games, { deep: true });
person Adam Marshall    schedule 06.11.2012
comment
Я отказался от нокаута из-за этой проблемы и НИКОГДА больше не буду использовать фреймворк, который имеет основные зависимости от других библиотек (без поддержки). Проверка настолько важна, что она должна быть частью И поддерживаться базовой структурой. Теперь я очень счастливый пользователь AngularJS. Спасибо за попытку. - person Pablo; 07.11.2012