2015-04-12 2 views
3

В Backbone есть привязка атрибута модели к полю ввода, так что при изменении входного значения атрибут модели будет автоматически установлен на текущее значение?Атрибут модели привязки магистрали к вводу

На данный момент у меня есть следующие на мой взгляд

<input type="text" name="firstname" class="form-input" value="<%- model.firstname %>" /> 

Тогда в представлении я слушаю следующее событие и установить модель приписывать соответственно

events: { 
    "keydown .form-input": "setAttribute" 
}, 

setAttribute: function() { 
    //Use model.set on the attribute that was changed 
} 

Мне это кажется плохой способ сделать это. Я пропустил более простой способ сделать это?

+0

jojo правильно; ваш код отлично подходит для Backbone. Почему это кажется вам плохой? –

ответ

4

Это правильный способ сделать это с помощью ванильной магистрали. Если вы хотите настроить автоматическую привязку данных, вам понадобится плагин, например, Epoxy.

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

var BindingView = Backbone.Epoxy.View.extend({ 
    bindings: { 
    "[name=firstname]": "value:firstName", 
    } 
}); 

Это связывает firstName атрибут модели на вход с name="firstname".

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