3
骨幹model.save()方法具有以下特徵:跳過第一個可選參數,並在第二個傳遞給骨幹model.save
model.save([attributes], [options])
我想打電話給它,但我不希望任何屬性傳遞,只有選項。我需要這種方式,因爲我在使用model.set(attributes)
保存之前設置了屬性。
如何僅將一個對象傳遞給model.save()
但指出它是選項對象而不是屬性對象?
骨幹model.save()方法具有以下特徵:跳過第一個可選參數,並在第二個傳遞給骨幹model.save
model.save([attributes], [options])
我想打電話給它,但我不希望任何屬性傳遞,只有選項。我需要這種方式,因爲我在使用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)
你保存模型,是你就可以設置你的options
。此外,如果你這樣說:
m.save(some_attrs, options);
那麼就是(或多或少)一樣:
m.set(some_attrs);
m.save(null, options);
疑難雜症。應該偷看到源頭。有時候文檔有點讓人失望。謝謝! – xbonez
@xbonez:文檔跳過一些重要的細節,但在好處方面,源代碼非常易讀。 –