gpt4 book ai didi

javascript - 在 javascript/backbone 中初始化模型元素

转载 作者:行者123 更新时间:2023-12-03 06:22:44 24 4
gpt4 key购买 nike

我从 REST 获取嵌套的 JSON 数据。现在我想在变量中捕获该值。一切工作正常,但我不知道应该如何初始化该变量。

这是我的模型初始化方法。

initialize: function() {
var self = this;
if (!this.get('dropdownData')) {
this.set({
dropdownData: []
});
}
}
}

AJAX 调用:

fetchDropdown: function(data) {
var self = this;
var d = $.Deferred();
var dropdownRequest = $.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: this.urlRoot,
data: JSON.stringify(data)
});
dropdownRequest.done(function(data)
{
self.set({
dropdownData: data
});
console.log("JSON SUCCESS!! YAY!!");
d.resolve();

});

现在 dropdownData 应该初始化为 dropdownData: {} 或 dropdownData: [] 或者我根本不需要初始化它。

P.S:逻辑明智的代码片段正在工作。我只想知道在 BACKBONE MODEL

initialize 函数中初始化 dropdownData 的正确方法是什么

最佳答案

我建议完全避免在 initialize 方法中初始化 dropdownData,而是使用 model.defaults这里。如果将以下内容添加到模型定义中:

defaults: function () {
return {
dropdownData: []
};
},

...然后您可以删除 initialize 方法主体中的所有代码。此更改的结果将是实例化模型将具有为 dropdownData 提供的值(在实例化时)模型将默认为指定的空数组。 p>

请注意,此处使用defaults 的函数版本非常重要。如果您要这样做:

defaults: {
dropdownData: []
},

...那么任何未提供 dropdownData 值的实例化模型将共享 dropdownData 值。每个实例都会引用完全相同的数组。

关于javascript - 在 javascript/backbone 中初始化模型元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38796555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com