gpt4 book ai didi

javascript - JSON 文件中的动态 key (例如由 backbone.js 模型使用...)

转载 作者:行者123 更新时间:2023-11-29 10:22:13 27 4
gpt4 key购买 nike

我正在尝试使用动态键创建一个 backbone.js 模型,但似乎无法正确完成。

这是我的模型:

window.MyModel = Backbone.Model.extend({
myDynamicVar : "country",
urlRoot: "api/myModel",
defaults: {
"id": null,
this.myDynamicVar : "USA",
"country": {
"route":"test/test/test",
"class":".usa2",
"txt":"USA 2"
},
"region": "California",
"year": "",
"description": "",
"picture": ""
}
});

在这里,我试图用我的模型中的内容替换 myDynamicVar。有没有想过我如何完成这项工作?提前致谢,吉米

最佳答案

您不能直接这样做;对象字面量中“:”的左边必须是常量。你可以做的是:

window.MyModel = Backbone.Model.extend({
myDynamicVar : "country",
urlRoot: "api/myModel",
defaults: function(fieldName) {
var value = {
"id": null,
"country": {
"route":"test/test/test",
"class":".usa2",
"txt":"USA 2"
},
"region": "California",
"year": "",
"description": "",
"picture": ""
};
value[fieldName] = "USA";
return value;
}(this.myDynamicVar)
});

编辑 — 啊,我刚刚注意到“myDynamicVar”本身是外部对象的一部分。没有办法以这种方式用 this 引用它,所以如果那是你想要做的代码会有所不同:

window.MyModel = Backbone.Model.extend(function() {
var value = {
myDynamicVar : "country",
urlRoot: "api/myModel",
defaults: {
"id": null,
"country": {
"route":"test/test/test",
"class":".usa2",
"txt":"USA 2"
},
"region": "California",
"year": "",
"description": "",
"picture": ""
}
};

value.defaults.[value.myDynamicVar] = "USA";
return value;
}());

如果您希望 myDynamicVar 自身 是动态的,那么您可以将其作为参数传入:

window.MyModel = Backbone.Model.extend(function(whichProperty) {
var value = {
myDynamicVar : "country",
urlRoot: "api/myModel",
defaults: {
"id": null,
"country": {
"route":"test/test/test",
"class":".usa2",
"txt":"USA 2"
},
"region": "California",
"year": "",
"description": "",
"picture": ""
}
};

value.defaults.[value[whichProperty]] = "USA";
return value;
}("myDynamicVar"));

关于javascript - JSON 文件中的动态 key (例如由 backbone.js 模型使用...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9184295/

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