使用骨干j的动态HTML渲染不会在单击事件后替换原始内容

时间:2016-02-23 17:44:04

标签: javascript html css backbone.js underscore.js

我正在学习骨干js,最近遇到了动态html渲染的问题。 我有两个标签,当我点击每个标签时,下面的html必须更改。我无法改变HTML。我在基于骨干js模型的html代码中给出了if / else条件。我想我必须调用渲染功能,对吗?

还有其他方法吗?另外,我的find函数是基于数组迭代并打印hello 5,6次。但它不应该只找到状态对象吗?提前谢谢。

          TAB1                      TAB2                   <%_.find(tab1,function(item){        if(item.state!=“active”){%>                 你好               <%} else {        嗨               <%}})%>        

1 个答案:

答案 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"});