我的JSlink代码需要一些帮助。
我使用了这段代码,效果很好:
var Fields = {
"Continent": {
"NewForm": FieldTemplate,
"EditForm": FieldTemplate
},
"Country": {
"NewForm": FieldTemplate,
"EditForm": FieldTemplate
},
"City": {
"NewForm": FieldTemplate,
"EditForm": FieldTemplate
}
};
但我想让它变得动态,所以我尝试了这个:
for (var i = 0; i < fields.length; i++){
Fields.push(fields[i].name: {
"NewForm": countryFieldTemplate,
"EditForm": continentFieldTemplate
});
}
在for循环中,字段是一个包含&#34;大陆&#34;,&#34;国家&#34;和&#34;城市&#34;但我的代码不起作用,我想知道原因。 提前谢谢。
答案 0 :(得分:0)
您可以使用以下语法在JavaScript对象上创建属性:
Object[propertyName] = propertyValue;
所以这应该有效:
var Fields = {};
for (var i = 0; i < fields.length; i++){
Fields[fields[i]] = {
"NewForm": countryFieldTemplate,
"EditForm": continentFieldTemplate
};
}
fields
的位置:
var fields = ["Continent", "Country", "City"]
答案 1 :(得分:0)
// Fields needs to be an object rather than an array
var Fields = {};
// loop over your fields array
for (var i = 0; i < fields.length; i++){
// then just assign each field as the key to the Fields object
Fields[fields[i]] = {
NewForm: countryFieldTemplate,
EditForm: continentFieldTemplate
};
}