2016-01-20 3 views
0

Использование dockyard/ember-validations По умолчанию правило проверки правильности приведено ниже.Динамически настраиваемый объект проверки в Ember-ember-validations

var Controller = Em.Controller.extend( 

{ 

validations: { 
'model.firstName': 
    {presence: 
    {message: 'First Name is a required field.'} 
    }, 
'model.lastName': 
    {presence: 
    {message: 'Last Name is a required field.'} 
    } 
}, 

.. 

} 

Но я хочу, чтобы выбрать этот объект валидаций на основе состояния, я Выбирается как функция собственности, как показано ниже.

var Controller = Em.Controller.extend( 

{ 

validations: function() { 
if(somecondition) 
{ 
return{ 'model.firstName': 
    {presence: 
    {message: 'First Name is a required field.'} 
    }, 
'model.lastName': 
    {presence: 
    {message: 'Last Name is a required field.'} 
    } 
} 
else 
{..} 
} 

}.property(), 

.. 

} 

Но когда я преобразовываю это как функцию, библиотека ember-validations работает не так, как ожидалось. Как я могу смягчить эту ситуацию?

ответ

0

Я достиг этого путем сохранения валидации как самого свойства и инициализировал его с помощью метода init init.

var Controller = Em.Controller.extend( 

{ 

    validations: null, 

    init:function(){ 

    this._super(); 

    if(somecondition){ 

    this.set('validations',{...}); 

    } 
    else{ 

    this.set('validations',{...}); 

    } 

    }, 

.. 

} 
1

Предлагаю взглянуть на ember-cp-validations, он предлагает расширенные возможности для проверки.

+0

Спасибо .. Но поскольку я пытаюсь изменить часть существующего кода, проверка верфи/ember-валидации является только опцией передо мной .. – amesh

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