Bacbkone.js渲染中的标签名类名
bacbkone.js tagname classname in render
im 尝试根据模型isActive
属性设置具有"非活动"或"活动"类的元素。
<tr class="inactive">
这就是我所拥有的。"非活动"是默认值。结果呈现是所有 TR 元素都具有"非活动"类
var ItemView = Backbone.View.extend({
tagName: "tr",
className: 'inactive',
render : function() {
this.className = this.model.get('Active') ? 'active' : 'inactive';
...
this.$el.html( this.template(data) );
}
});
找到一些小字
className: function() {
var el = this.model.get('Active') ? 'active' : 'inactive'; // Set active flag in class
return el;
},
但是,现在得到错误:'this.model' is undefined
建议在初始化之前运行 className 函数。 IM 使用默认初始值设定项。render
this.model
从来没有遇到过问题。
如果您要检查模型是否处于活动状态,为什么要费心使用默认类名?在我看来,如果您在渲染函数时设置默认值,您将跳过默认值。此外,将类名添加到模板中可能更容易:
template: _.template('<tr class="<% active ? 'active' : 'inactive' %>">...</tr>');
然后,您无需担心它可能会更改的其他任何地方,并且您的代码更少。
编辑:
以下链接提供了另一种动态侦听属性更改和更新视图的方法:
如何根据 Backbone.js 视图的模型属性动态设置类名?
我使用 jquery addClass 添加了运行时类名。
render: function() {
var isactive = this.model.get("Active") ? "" : "inactive";
this.$el.removeClass('inactive').addClass(isactive);
}
相关文章:
- 如何在不使用JS发出新请求的情况下读取当前标头
- 匹配在RubyonRails和JavaScript中加密的签名标头
- 蒸发js和s3的php签名url
- 快递.js - 如何检查标头是否已发送
- 如何制作 hls.js在请求加密密钥时在请求标头中发送 cookie
- 将节点.js更新为 0.12 标头错误
- Node js:如何获取文件签名标头而不是 mime 类型
- Knockout.js在标头中绑定css/js库
- 如何使用HTML5和JS捕获和识别用户签名
- 错误:Can't在发送标头后设置标头.node.js
- 如何使用不同的API's在同一个Angular JS应用程序中具有不同的身份验证标头
- 标头已发送node.js错误
- jQuery 类选择器:带或不带标签名
- 从快递中删除所有标头.js
- Js按标签名get不工作
- 节点.innerHTML给出小写的标签名
- AngularJS -从模型中注入字符串到HTML's标签名
- JavaScript循环遍历所有标签名为alert的元素
- 带有元素标签名的regexp错误
- 不像其他人-移动所有内容在