2017-06-20 66 views
2

在创建羊驼形式的过程中,我遇到了一个我不确定如何进行的情况。阵列中每个对象的动态独立标题

这里是我使用的模式的表示:

$("#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" 
      } 
     } 
    } 
    } 
}); 

渲染架构是这样的:

Ice Cream Schema

我有对象的数组,包括文本字段。我的目标是根据对象所包含的数据为数组中的每个对象创建一个动态且独立的标题。在这个例子中,第一个对象可以用'香草'代替'冰淇淋',第二个对象用'巧克力'代替。

我试过使用postRender回调根据当前字段数据设置数组容器中每个对象的title属性,尽管我似乎无法获取要更新的文本。

回答

1

你可以通过做一些破解来实现这一点,但默认情况下,数组类型的字段通常为每个创建的项目使用相同的标题。您需要做的是在更改Flavor字段后更改标题,这将通过在该字段中使用更改事件来完成。

"flavor": { 
     "events": { 
     "change": function() { 
      changeItemLabel(this.parent, this.getValue()); 
     } 
     } 
    } 

这将做到这一点,但所有新创建的项目将具有相同的更新标题!因此,想到的想法是使用某种默认标签并覆盖新创建项目的更新标题。

这是一个fiddle演示这种情况。 我希望这可以帮助你,但告诉我,如果这不是你想要的。

+1

这解决了动态标题错误!是否有可能使这些标题可点击折叠每个对象?我试着添加崩溃数据 - 切换成功,但我正在寻找更清晰的解决方案! (为什么不是像其他容器对象那样可折叠的对象?) –

+1

对于工作崩溃有一个选项来激活它,我试过了但它没有工作......我会再试一次,也许今天下班后。 – vert3x