2014-12-03 7 views
0

Я следую за этим link, чтобы создать проверки.Как использовать проверку нокаута

Но я не понимаю, как я могу использовать этот метод . метод в моем коде.

Я загружаю данные в свои наблюдаемые записи, поступающие из запроса на ведение бриза.

загружаю данные ниже образом

dataObsArray= ko.observableArray() 

datacontext.getData(id,dataObsArray) 
        .then(function() { 

      // some logic 


}) 
     .fail("Data not found"); 

Затем я связать этот OBS массив на мой взгляд, как показано ниже

<tbody data-bind="with: dataObsArraay"> 
      <tr> 
       <td>name</td> 
       <td> <input data-bind=" value: Name" ></td> 
       <td> <input data-bind=" value: Age" ></td> 

      </tr> 
</tbody> 

поэтому я не понимаю, как я могу использовать расширить метод, потому что я просто используя привязку моего представления со свойствами в моем наблюдаемом массиве.

Прошу вас, руководствоваться.

+0

хорошо у вас есть модель у вас есть функция с сущностями i.e имя, возраст и т. Д. если вам нужно использовать '.extend ({// logic здесь})'. –

+0

Я могу помочь вам опубликовать какой-то ответ с нокаутом, но у меня нет понятия о ветре –

ответ

0

вам необходимо создать модель для ваших данных и т.д .:

function person(name, age) { 
    this.name = ko.observable(name).extend({ minLength: 2, maxLength: 10 }); 
    this.age = ko.observable(age).extend({ min: 18, max: 99 }); 
} 

var data = [], 
    people = ko.observableArray(); 

datacontext.getData(id, data) 
    .then(function (data) { 
     for (i = 0; i < data.length; i++) { 
      people.push(new person(data.Name, data.Age)); 
     } 
    }) 
    .fail("Data not found"); 


<tbody data-bind="foreach: people"> 
    <tr> 
     <td>name</td> 
     <td> <input data-bind=" value: name" ></td> 
     <td> <input data-bind=" value: age" ></td> 
    </tr> 
</tbody> 
1

Рассмотрите возможность использования breeze validation вместо того, чтобы поместить логику проверки в коде пользовательского интерфейса с помощью нокаута удлинителя. Использование проверки веяния гарантирует, что правила всегда будут оценены и избавят вас от создания дополнительной модели над вашей сущностью для целей проверки.

вот пример использования одного из ветерок в валидаторах: валидатор строки.

var entityType = entityManager.metadataStore.getEntityType('????'), 
    nameProperty = entityType.getProperty('Name'), 
    nameLengthValidator = breeze.Validator.stringLength({ maxLength: 10, minLength: 2 }); 
nameProperty.validators.push(nameLengthValidator); 

вот пример пользовательской необходимости проверки подлинности для строк, которые не позволяют пробельным только значений:

// make a reusable validator 
var myRequiredValidator = breeze.Validator.makeRegExpValidator(
    "myRequiredValidator", 
    /\S/, 
    "The %displayName% '%value%' cannot be blank or entirely whitespace"); 

// register it with the breeze Validator class. 
breeze.Validator.register(myRequiredValidator); 

// add the validator to the Name property... 
var entityType = entityManager.metadataStore.getEntityType('????'), 
    nameProperty = entityType.getProperty('Name'); 
nameProperty.validators.push(nameLengthValidator); 

вот documentation для создания регулярных выражений валидаторов.

Вы также можете написать пользовательские валидаторы - проверьте breeze docs для получения дополнительной информации об этом - найдите Напишите пользовательский валидатор.

+0

У вас есть хороший пример для этого? будет очень полезно – Happy

+0

Какую проверку я использую, если я использую пространство в своем поле ввода? Я поместил атрибут [Обязательный] в свою сущность, но когда я попытаюсь сохранить, я получаю entityAspect.hasValidationErrors как false. Я не хочу, чтобы пользователь имел только пробелы – Happy

+0

http://stackoverflow.com/questions/23478929/how-to-make -the-breezejs-required-validator-allow-empty-strings –

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

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