1

Я создаю динамическую модель нокаута динамически, и этот код работает нормально. Я хочу добавить подтверждение в эту модель просмотра. Могу ли я добавить подтверждение в эту модель просмотра? Является ли этот хороший подход или я должен сам создать viewmodel и самостоятельно добавить атрибуты проверки? Или какая-либо проверка на стороне клиента работает с аннотациями данных?Проверка нокаута на динамической модели просмотра

var viewModel = function() { 
     var self = this; 
     self.States =ko.observableArray(); 
     self.Countries =ko.observableArray(); 
     self.showStates = ko.observable(false); 
     self.saveData = function (self) { //save data function }; 
    } 
var VM= new viewModel(); 

$.ajax({ 
success: function(data) 
{ 
    var newVM = ko.mapping.fromJS(data, {}, VM); 
    // newVM.FirstName, newVM.LastName 
    // I want to add validation in this newVM 
} 

ответ

2

Поскольку вы используете KO Mapping плагин для загрузки данных, у вас также есть возможность подключить в случае «создать» и добавить проверку для отдельных элементов, если вы хотите. Как и в нижеследующем:

$.ajax({ 
success: function(data) 
{ 
    var mappingOption = {  
     'FirstName': { 
      create: function (option) { 
      return ko.observable(option.data).extend({ required: true }); 
      } 
     }, 
     'LastName': { 
      create: function (option) { 
      return ko.observable(option.data).extend({ required: true }); 
      } 
     } 
    } 
    // Now load your viewModel with the mapping option you just specified 
    var newVM = ko.utils.arrayMap(data, function (item) { 
     return ko.mapping.fromJS(item, mappingOption); 
    }); 
    // ... From now on... in your newVM... firstName and lastName will be 'required' 
} 

Надеюсь, это поможет.

Спасибо.

 Смежные вопросы

  • Нет связанных вопросов^_^