2015-04-26 3 views
0

У меня есть поле количества в моей Форме, которое я умножаю на 100 после отправки в моем контроллере. Проблема заключается в том, что представление передает умножение, прежде чем перейти к следующей странице. Как я могу избежать этого? Как правило, как предотвратить отображение отображаемого измененного значения после его отправки?Контроллер MVC меняет поле ввода после отправки

Я использую ember.js с рельсами в backend, но я думаю, что это скорее проблема MVC.

это мнение:

{{input value=model.amount mask="999[999].99" 
     classNames="form-control" placeholder=(t 'transactions.amount')}} 

и это контроллер:

actions: { 
create: function() { 
    var _this = this; 
    var model = this.get('model'); 

    model.set('amount', model.get('amount') * 100); 

    model.save().then(function(transaction) { 
    _this.get('target').transitionToRoute(_this.get('destination'), transaction.get('id')); 
    }, function(response){ 
    _this.set('errors', response.errors); 
    }); 
} 

}

+1

Можете ли вы предоставить свои коды, пожалуйста –

ответ

0

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

displayAmount: function(key, value, previousValue) { 
    // setter 
    if (arguments.length > 1) { 
     this.set('amount', value * 100); 
    } 

    // getter 
    return this.get('amount')/100; 
    }.property('amount') 

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

displayAmount: Ember.computed("amount", { 
    get: function() { 
    return this.get("amount")/100; 
    }, 
    set: function(key, amount) { 
    this.set("amount", amount * 100); 
    } 
}) 
Смежные вопросы