2013-04-02 26 views
1

我不確定這是否可能,因爲我很漂亮的網頁。所以基本上我想要做的是迭代數組,遍歷數組中的每個元素,用適當的信息填充骨幹視圖。我想我可以做的,是有這個模板在我的.cshtml聲明:創建與骨幹模板獨特的div

<div id="template-sample-validation-error"> 
    <form id="sample-validation-form" class="form"> 
       <div id="sampleName" class="control-label">Sample Name:</div> 
     </form> 
</div> 

(有實際上是在實際的模板更多的領域,但我並沒有包括所有這些)。

所以對於那個模板,我想我可以綁定到該模板的視圖,併爲集合中的每個項目添加一個新模板。問題是,因爲ID是不唯一的,在我的骨幹鑑於我的初始化方法,我不能搶唯一項目:

// some of the backbone view 
SampleValidationView = (function() { 
    return Backbone.View.extend({ 
     initialize: function (sample) { 
      var sampleMessage = sample.get('sampleName'); 

// iterating and creating a SampleValidationView to render 
_.each(samples, function (aView) {     
      var errorView = new SampleValidationView(aView); 
      this.$('#template-sample-validation-error').append(errorView.render().$el); 
     }); 

然後我發現這個職位,基本上增加了許多的股利使div獨一無二。
Create Dynamic div with unique IDs - jQuery

我不知道我會如何用我創建的模板做這樣的事情。我猜想另一種方法是做類似於文章中所做的事情,但我認爲每個視圖都有一個模板,並且根據數組中項目的數量將每個視圖相互追加到一起會更清晰。但我卡住了。任何想法將不勝感激。謝謝! 。

回答

1

如果您使用凸顯出你的模板,你可以在ID的末尾添加<%=%>追加模型的ID或傳入的對象例如:

<div id-"unique-id-<%= id %>"> 
    ...content 
</div> 

那會只需在調用_.template({id:1})時將模型的id或傳遞到模板的對象放入模板中。這將使:

<div id-"unique-id-1"> 
    ...content 
</div> 

你應該做的,而不是明確地找到#模板樣本驗證錯誤使用jQuery,您應該聲明你的觀點的EL變種。這可以讓你簡單地調用這個$ el。所以也許這樣的事情:

// some of the backbone view 
SampleValidationView = (function() { 
    return Backbone.View.extend({ 

     el : '#template-sample-validation-error', 
     template : _.template($('#template-sample-validation-error').html()), 

     initialize: function (sample) { 
      var sampleMessage = sample.get('sampleName'); 
     }, 

     render : function(){ 
      this.$el.html(this.template({id : 1})); // Some unique id 

      // iterating and creating a SampleValidationView to render 
      _.each(samples, function (aView) {     
       var errorView = new SampleValidationView(aView); 
       this.$el.append(errorView.render().$el); 
     } 
    }); 
+0

有用的提示 - 下劃線有_.uniqueId方法生成唯一ID – dyurkavets