在 Backbone 视图渲染上动态设置 className

2024-01-02

我有一个 Backbone 视图,其中 className 使用函数动态设置:

app.Views.ItemRequestView = Backbone.View.extend({

    tagName     : 'tr',

    className   : function(){

        var classRow = '';

        if(this.model.getState() == app.Models.Request.status.wait.key) {
            classRow = app.Models.Request.status.wait.color + ' bolder';
        }
        else if(this.model.getState() == app.Models.Request.status.confirm.key){
            classRow = app.Models.Request.status.confirm.color + ' bolder';
        }

        return classRow;
    },

当我更新视图的模型时,我会触发渲染视图的更改事件。 问题是 className 不会随渲染重新计算... 渲染视图时如何重新计算 className ?

有人有主意吗? 谢谢


您必须更新您的class之后手动render方法。骨干网初始化className期间仅查看视图元素一次_ensureElement method:

_ensureElement: function() {
      if (!this.el) {
        var attrs = _.extend({}, _.result(this, 'attributes'));
        if (this.id) attrs.id = _.result(this, 'id');
        if (this.className) attrs['class'] = _.result(this, 'className');
        var $el = Backbone.$('<' + _.result(this, 'tagName') + '>').attr(attrs);
        this.setElement($el, false);
      } else {
        this.setElement(_.result(this, 'el'), false);
      }
}

如果您看一下,它会检查该元素是否已存在。 无论如何,您可以在您的render method:

render: function(){
   //Your logic
   this.$el.attr('class', _.result(this, 'className'));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Backbone 视图渲染上动态设置 className 的相关文章

随机推荐

  • 使用 boost::regex 获取子 match_results

    嘿 假设我有这个正则表达式 test 0 9 我将其与以下内容相匹配 test1test2test3test0 const bool ret boost regex search input what r for size t i 0 i
  • 替换安全管理器 checkMemberAccess()

    Java 安全管理器方法checkMemberAccess https docs oracle com javase 7 docs api java lang SecurityManager html checkMemberAccess j
  • 用动画填充颜色 SVG 路径

    我使用以下方法来填充 SVG 路径的颜色 有没有办法给它添加动画 从中心开始填充颜色并展开 function btn test1 on click function path1 attr fill 0000 这个答案提供了四种不同的选择使用
  • 在 Maven 存储库中找不到项目

    我有一个带有子模块的 Maven 模块 父级的相关部分是这样的
  • T-SQL 函数获取存储字符的 ASCII 值

    我正在使用 T SQL 块来获取存储在数据库列中的 ascii 字符转储 我知道在 Oracle 中使用 DUMP 函数可以轻松完成此操作 我不熟悉 SQL Server sytax 但我正在使用类似的东西 SET NOCOUNT ON C
  • 来自柏林噪声的每顶点法线?

    我正在 Opengl 几何着色器中生成地形 但在计算照明法线时遇到问题 我使用几何着色器中实现的柏林噪声函数动态生成每帧地形 因为这 我需要一种有效的方法来计算每个顶点的法线基于噪声函数 没有纹理或任何东西 我可以采用 2 条边的叉积来获取
  • 与简单的用户 ID 检查相比,声明/角色/策略授权的技术优势是什么?

    我使用 Identity Server 并通过策略和角色保护端点 这些反映在我分发给客户端的访问令牌中 今天 我收到建议 不要保护这样的方法 Authorize Policy Elevated HttpGet metadata public
  • CUDA 中的嵌套内核

    CUDA 目前不允许嵌套内核 具体来说 我有以下问题 我有N个M维数据 为了处理 N 个数据点中的每一个 需要按顺序运行三个内核 由于不允许嵌套内核 因此我无法创建调用三个内核的内核 因此 我必须串行处理每个数据点 一种解决方案是编写一个包
  • C++ 中短路 `operator<<` 输出

    我有一些代码散布着这样的结构 if debug Output lt lt f1 lt lt f1 lt lt n 现在我想做的是编写一个流类Debug我可以这样写 Debug lt lt f1 lt lt f1 lt lt n 如果设置了某
  • 简单的 TextView.setText 导致 40% CPU 使用率

    运行我的应用程序会导致我的手机 CPU 使用率达到约 40 final String position String format 02d 02d 02d time getHours time getMinutes time getSeco
  • Excel VBA 中的定时警报

    我在 Excel 2003 中制作了一个日历来跟踪任务和类似项目 我需要做的是通过 VBA 设置计时器 像这样的事情 run in x secs timetowait function to exec 有没有办法在 excel vba 中做
  • 如何用字符串替换缩写?

    我正在创建一个 XSL 文件 该文件将从 XML 文件中提取有关在我所在区域被拖走的汽车的信息 并按汽车被拖走的日期按升序对其进行排序 我需要在转换后的文件中显示拖车日期 车牌和汽车颜色 我的问题是每辆车的颜色都有缩写 我想要颜色的全名而不
  • 在NancyFx中获取url参数

    我正在使用 NancyFx 构建 Web API 但从 URL 获取参数时遇到一些问题 我需要向 API 发送请求 consumptions hourly from 1402012800000 tags 171 1342 5D to 140
  • 多个卷到单个目标目录?

    有没有办法从主机挂载多个卷以形成单个目标挂载点 有点像这样 docker run name ubuntu bash rm interactive tty volume media Large videos videos volume med
  • 将 GIT 与在多个位置具有目录的项目一起使用

    我正在尝试将 PHP MySQL Web 应用程序 基于 CodeIgniter 2 01 框架构建 移动到 GIT 存储库 问题是为了增加安全性 我实施了分离应用程序部分 应用程序和系统文件夹 和 Web 文件 index php 图像
  • 使用非虚拟析构函数扩展基类是否危险?

    在下面的代码中 class A class B public A class C public A int x int main int argc char argv A b new B A c new C in both cases on
  • Log4j2/JPA/Hibernate 日志记录不起作用

    我无法使用 log4j2 生成休眠日志消息 它仅记录信息和警告 另一方面 HikariCP 与此配置完美配合 这是 pom xml
  • vim 中的自适应 Tab 键

    我碰巧处理的代码中 某些模块使用制表符进行缩进 而其他模块则使用空格 许多文本编辑器 例如 Np 具有某种自适应制表符功能 如果前一行 或代码块 使用空格或制表符 视情况而定 则使用空格进行缩进 我还没有在 vim 中看到过这样的东西 有没
  • 如何在 MariaDB 容器中运行 cron?

    我想在 MariaDB 容器中包含一个基于最新映像的 cron 任务mariadb 但我坚持这个 我尝试了很多方法但没有成功 因为我无法同时启动 MariaDB 和 Cron 这是我实际的 dockerfile FROM mariadb 1
  • 在 Backbone 视图渲染上动态设置 className

    我有一个 Backbone 视图 其中 className 使用函数动态设置 app Views ItemRequestView Backbone View extend tagName tr className function var