2014-07-11 116 views
1

我傳遞下面我Underscrore模板(現在fieldAttr是動態的......可以有2個ATTRS,3個ATTRS等)下劃線JS添加邏輯模板

fieldAttr: { 
    id: "myElmId", 
    dataModelId: $(this).attr('data-model-id') 
} 
在我的HTML模板

現在,我要循環,並設置finalAttributesString(我將用它來設置我的textarea的屬性)

<% for (var i = 0, i < fieldAttr.length; i++) { %> 
    //logic to get finalAttributesString 
<% } %> 

<textarea <%=finalAttributesString%>></textarea> 

所以它應該呈現如下:

<textarea id="myElmId" data-model-id="123"></textarea> 

我可以使用Underscore JS來做到這一點嗎?如果是的話,請你指導我。

+0

什麼是得到''dataModelId'數據模型id'的邏輯是什麼?還應該使用其他什麼屬性? – Bergi

+0

沒有這樣的邏輯....如果可能的話,我有控制傳遞作爲確切的屬性名稱本身...即,我可以通過data-model-id:$(this).attr('data-model-id') – testndtv

+0

但我想,我不能在attr名稱中直接傳遞連字符.... – testndtv

回答

0

它更容易做到這一點

<textarea <% for(var attr in fieldAttr) { %> <%= attr %>="<%= fieldAttr[attr] %>" <% } %> 
></textarea> 

我做了一個jsfiddle here

+2

什麼是['_.forIn'](http://underscorejs.org/#forIn)? – Bergi

+0

剛剛嘗試過......我得到ReferenceError:attrs沒有定義 – testndtv

+0

對不起,_.forIn只存在於[lodash](http://lodash.com/docs#forIn)中。修正了這個問題 – TKrugg