javascript - 跳过第一个可选参数并将第二个参数传递给 Backbone 模型。保存

标签 javascript backbone.js

主干 model.save()方法具有以下签名:

model.save([属性], [选项])

我想调用它,但我不想传入任何属性,只有选项。我需要这种方式,因为我在使用 model.set(attributes) 保存之前设置了属性。

我怎样才能只将一个对象传递给 model.save() 但指出它是选项对象而不是属性对象?

最佳答案

文档对此有明确说明,因此我们必须查看 the source :

save: function(key, val, options) {
  var attrs, current, done;

  // Handle both `"key", value` and `{key: value}` -style arguments.
  if (key == null || _.isObject(key)) {
    attrs = key;
    options = val;
  } else if (key != null) {
    (attrs = {})[key] = val;
  }

在其下方您将看到各种 if (attrs ...) 检查。所以如果你说

m.save(null, options)

您将按原样保存模型,您将能够设置您的选项。此外,如果你这样说:

m.save(some_attrs, options);

那么这(或多或少)与:

m.set(some_attrs);
m.save(null, options);

关于javascript - 跳过第一个可选参数并将第二个参数传递给 Backbone 模型。保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13665752/

相关文章:

页面加载后立即显示 Javascript 警报

javascript - URL更改后附加内容消失

javascript - 我找不到一种优雅的方法将数据库源添加到 dgrid

javascript - Backbone JS : When to use fetch and when to use sync?

javascript - 如何在 Backbone.js 中将 View 代码分离为模型和 Controller

jquery - 将表单数据序列化为 JSON

javascript - 在 Backbone View 中定义变量的最佳实践

javascript - JS/ ionic :TypeError: Cannot read property 'code' of undefined

javascript - CSS 移动菜单平滑滚动在父级固定时暂时禁用

javascript - Handlebars 不读取 backbone.js 模型属性