我正在学习骨干js,最近遇到了动态html渲染的问题。 我有两个标签,当我点击每个标签时,下面的html必须更改。我无法改变HTML。我在基于骨干js模型的html代码中给出了if / else条件。我想我必须调用渲染功能,对吗?
还有其他方法吗?另外,我的find函数是基于数组迭代并打印hello 5,6次。但它不应该只找到状态对象吗?提前谢谢。
TAB1 TAB2 <%_.find(tab1,function(item){ if(item.state!=“active”){%> 你好 <%} else { 嗨 <%}})%>
答案 0 :(得分:0)
您可以将更改事件绑定到模型,以便每次都调用render函数。
即
this.model.bind("change:tab", this.render);
此外,您的示例中的find函数仅用作每个循环,因为您没有返回匹配项,因此如果没有看到数据,则很难看到问题的原因。
您需要返回条件才能正确使用_.each函数。
例如
var activeTab = _.find(tabs, function(item){ return item.state === "active"; });
更合适的下划线方法是findWhere,它将像
一样工作var activeTab = _.findWhere(tabs, { state : "active"});