Javascript 数组中每个对象的动态独立标题
在创建羊驼形状的过程中,我遇到了一个我不确定如何继续的情况 以下是我正在使用的模式的表示:Javascript 数组中每个对象的动态独立标题,javascript,alpacajs,Javascript,Alpacajs,在创建羊驼形状的过程中,我遇到了一个我不确定如何继续的情况 以下是我正在使用的模式的表示: $("#samplediv").alpaca({ "schema": { "description": "My Favorite Ice Creams", "type": "array", "items": { "title": "Ice Cream", "type": "object", "properties": {
$("#samplediv").alpaca({
"schema": {
"description": "My Favorite Ice Creams",
"type": "array",
"items": {
"title": "Ice Cream",
"type": "object",
"properties": {
"flavor": {
"title": "Flavor",
"description": "Ice cream flavor",
"type": "string"
},
"topping": {
"title": "Topping",
"description": "Ice cream topping",
"type": "string"
}
}
}
}
});
呈现的架构如下所示:
我有一个由文本字段组成的对象数组。我的目标是根据对象包含的数据,为数组中的每个对象创建一个动态且独立的标题。在本例中,第一个对象可以将“冰淇淋”标题替换为“香草”,第二个对象可以将“巧克力”标题替换为“巧克力”
我尝试使用postRender回调根据当前字段数据设置数组容器中每个对象的title属性,但似乎无法获取要更新的文本 您可以通过一些技巧来实现这一点,但默认情况下,数组类型的字段通常对创建的每个项目使用相同的标题。您需要做的是在更改风味字段后更改标题,这将通过在该字段中使用更改事件来实现
"flavor": {
"events": {
"change": function() {
changeItemLabel(this.parent, this.getValue());
}
}
}
这就可以了,但是所有新创建的项目都会有相同的更新标题!因此,我们想到的想法是使用某种默认标签,并覆盖新创建项目的更新标题
这是一个演示这个案例的例子。
我希望这对您有所帮助,但如果这不是您想要的,请告诉我。不幸的是,Alpacajs文档非常混乱,并且没有描述一些功能。还有几个例子根本不起作用。因此,您必须深入研究源代码以了解其工作原理:( 要启用折叠,必须将代码放在选项的“项”部分中,如下所示:
"options": {
"myfield": {
"toolbarSticky": true,
"toolbarPosition": "bottom",
"type": "array",
"items": {
"collapsible": true,
"fields": {
}
}
}
}
这就解决了动态标题错误!是否可以通过单击这些标题来折叠每个对象?我已经成功地尝试添加了“折叠数据”切换,但我正在寻找一个更干净的解决方案!(为什么对象不能像其他容器对象一样折叠?)为了让崩溃生效,有一个选项可以激活它,我试过了,但没有成功…我会在今天下班后再试一次。