backbone.js
  • underscore.js
  • backbone-views
  • underscore.js-templating
  • 2017-02-28 80 views -1 likes 
    -1

    嗨,我有一個觀點與模型屬性:有可能將模型中的屬性顯示爲模型中的其他屬性?

    name: "P", 
    surname: "a", 
    sorters: ["name","surname"] // dynamical array (parameter to show) 
    

    模板:

    <% for(i=0 ;i<sorters.length(); i++){ %> 
        <h2><%= sorters[0] %></h2> // its <%= 'name' %> with quotes 
    <% } %> 
    

    的結果我得到

    名, 姓

    我需要得到

    P, 一個

    作爲結果i。從分揀機[數組]不模型值獲得的值:

    一些實例

    1.

    name: "P", 
    surname: "a", 
    sorters: ["name"] 
    

    P

    2.

    name: "P", 
    surname: "a", 
    sorters: ["surname","name"] 
    

    一,P

    有了這個代碼模板我沒有從我的數組values from models但字符串文字和我的觀點,而不是從模型屬性顯示標籤

    +3

    目前還不清楚你問什麼... –

    +0

    @EmileBergeron當我使用模板而不是名稱和姓氏的值我得到文本「名稱」,「姓氏」 –

    +0

    澄清,在你的問題。 –

    回答

    1

    基於sorters返回值似乎等於ano在該模型的字段中,您希望動態返回該字段

    有幾種方法可以做到這一點,最好的辦法是在創建模板時提供variable選項(docs)。見下面的例子:

    var model = new Backbone.Model({ 
     
        name: "P", 
     
        surname: "a", 
     
        sorters: ["name","surname"] 
     
    }); 
     
    
     
    var tmp = _.template($('#template').html(), {variable: 'data'}); 
     
    $('#result').html(tmp(model.attributes));
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> 
     
    <script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script> 
     
    <script id="template" type="text/template"> 
     
    <% for(i=0; i < data.sorters.length; i++){ %> 
     
        <h2><%= data[data.sorters[i]] %></h2> 
     
    <% } %> 
     
    </script> 
     
    <div id="result"/>

    此外,最好使用each,而不是一個循環:

    <% _.each(data.sorters, function(sorter) { %> 
        <h2><%= data[sorter] %></h2> 
    <% }) %> 
    
    相關問題