2013-03-12 4 views
0

У меня есть таблица записей (= собрание) с колоннами - деятельности, названием, скорость, часыBackbone.js вид коллекции вид внутри коллекции

Теперь активностью является переключателем с параметрами (= другая коллекция ?), тем более, скорость должна быть скопирована из атрибута выбранного в данный момент параметра.

Как я могу вставить (?) эти параметры в шаблон первой коллекции? Особенно, когда рендеринг первой коллекции требует атрибутов из другой коллекции (курса).

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

// редактировать на самом деле никогда не возражают потребности скопировать цены из переключателя, я должен был сделать это так, прежде чем я начал пытаться преобразовать его в позвоночник

с другой стороны, я все еще будет необходимость это на изменение ..

+0

Что вы пробовали? Не могли бы вы предоставить jsfiddle или equiv? Трудно понять, что вы ищете здесь, учитывая, как мало информации вы предоставили. – WiredPrairie

+0

@WiredPrairie Я до сих пор решил передать все данные только одному виду, но я не уверен, что это правильный путь, и если мне на самом деле не понадобится то, что я просил. Во всяком случае, здесь jsbin http://jsbin.com/igajer/1 Что бы я хотел, это иметь разобранный вид для ActivityCollection и peopleCollection и не иметь _.each для действий/людей внутри _.each для записей – foxx

+0

underscore есть шаблоны, которые вы могли бы использовать –

ответ

0

Вот что-то, что вы можете попробовать. Я все еще не на 100% от того, что у вас есть, но у меня такое чувство, что вы пытаетесь решить проблему на гораздо более сложном угле, чем это необходимо.

Вид:

var EntryView = Backbone.View.extend({ 
    /** Get the values from the view elements. */ 
    serialize: function() { 
    return { 
     activity: this.$('.activity :selected').val(), 
     person: this.$('.person :selected').val(), 
     budget: this.$('.budget').val() 
    } 
    }, 
    events:{ 
     'change .test': 'changeActivity' 
    }, 
    changeActivity: function(ev) { 
    /** Event is triggered when any of the select element changes. */ 
    var entry = this.serialize(); 
    console.log(entry); 
    }, ... 

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

Шаблон:

<script type="text/template" id="tpl_entries"> 
<% _.each(entries, function(entry) { %> 
    <tr> 
    <td> 
    <select class="activity test">        
     <% _.each(activities, function(activity) { %>         
      <option><%= activity.get('name') %></option> 
     <% }); %> 
    </select> 
    </td> 
     <td> 
    <select class="person test"> 
     <% _.each(people, function(person) { %> 
      <option><%= person.get('name') %></option> 
     <% }); %> 
    </select> 
    </td> 
     <td> 
<div class="input-append"> 
    <input class="budget input-small" type="text" 
        value="<%= entry.get('budgeted') %>" /> ... 

Надеется, что это помогает и ведет вас в правильном направлении.

+0

Честно говоря, я не уверен, какой была моя цель, мой вопрос объясняется абсолютным отсутствием знаний о том, как работает эталон. Спасибо, в любом случае! – foxx