javascript - 如何切换 backbone.js 的模型属性?

标签 javascript backbone.js

在我的 js 代码中,我注意到许多语句,例如:

model.set({someAttribute : !model.get("someAttribute")});

所以我认为在模型中定义自定义方法可能会有用:

toggle: function(attr, silent){
    this.set({attr: !this.get(attr)}, silent? {silent:true} : {});
}

问题是,javascript javascript 将“attr”视为实际的键名而不是正式的函数参数,因此上面的代码不起作用。任何建议如何解决这个问题? 我想要一个优雅的单行解决方案。

最佳答案

对此没有优雅的单行解决方案。为了使用 attr 作为键,您必须声明对象文字,然后使用 [] 语法设置它:

toggle: function(attr, silent){
  var data = {}, value = this.get(attr);
  data[attr] = !value;
  this.set(data, {silent: silent});
}

关于javascript - 如何切换 backbone.js 的模型属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7385630/

相关文章:

javascript - ngRepeat 按数组属性过滤

serialization - Newtonsoft 中的 TypeNameHandling 需要 $type 作为第一个属性?

javascript - 在 requirejs 中返回 Backbone 集合的标准方法

javascript - 覆盖 Backbone Sync 以使用不同的调用来获取/保存/销毁

javascript - 做多个 .fetch() promise

javascript - DOM 元素添加到 DOM 树后是否立即可用?

javascript - 我的 jquery 代码不起作用。为什么?

javascript - 当 BackboneJS 中的initialize() 获取时,如何在 render() 中引用集合的数据?

javascript - 使用 Chrome 查找 JavaScript 内存泄漏

javascript - 使用 javascript 将椭圆转换为路径