2013-08-05 12 views
0

Я использую проверку нокаута для проверки формы. Каждое поле имеет собственный набор правил.определение нокаута пользовательские правила

В моем приложении администратор должен иметь права на выбор некоторых правил из предопределенного набора правил для определенного поля. У меня будет кнопка для каждого поля ввода, которая откроет модальный код, где будут отображаться все правила, и администратор должен иметь возможность выбрать из них определение пользовательских параметров или сообщений.

Мой вопрос: Как я могу определить правила, а затем передать их ko.observable.extend(rules), чтобы я мог изменять те, которые я проверяю в представлении приложения.

Я попытался отправить их в качестве строки, но без успеха:

var lastNameRules = '{ minLength: 2, required: true }'; 
var lastName = ko.observable().extend(lastNameRules); 

ответ

0

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

var rules = [{ required: true }, { minLength: 3 }, { maxLength: 10 }]; 

    for (var i = 0; i < rules.length; i++) { 
     lastName.extend(rules[i]); 
    } 

Этот путь реализуются все правила.

Edit: Другой путь будет толкать некоторые правила в правилах массива наблюдаемый:

lastName.rules().push({ rule: "email", params: true }); 

Таким образом продлить должен быть объявлен перед добавлением правил, из-за дополнительными функциональность, которая добавляется к наблюдаемому. В противном случае не будет правил массив как поле в наблюдаемом.

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