创建关键字列表 WITHIN 创建多对多关系

Create keywords list WITHIN Create with MANY to MANY relation

我想构建一个简单的 creation/edition 系统,可以在其中创建包含许多关键字的挑战。这是我创建的数据:

挑战 <---- MANY to MANY -----> 关键词

现在,我正在努力构建我的挑战创建表单,因为我正试图将关键字选择嵌入到挑战本身的创建页面上。这是它的样子:

Screenshot for Challenge creation

这是挑战创建页面。它包含名称、描述(挑战模型字段)以及一个带有网格的下拉菜单,两者都专用于此挑战的关键字。感谢脚本,当用户选择一个值时,我成功地将一个关键字项添加到网格数据源:

/**
 * Adds a Keyword to the list of Keywords
 * If already added then does nothing.
 * @param {Widget} widget - widget that triggered the event.
 * @param {Keyword} newValue - record object of selected keyword.
 */
function addKeyword(widget, newValue) {

  var ds = app.pages.CreateChallenge.descendants.KeywordsGrid.datasource;
  ds.items.push({
    KeywordId: newValue._key,
    KeywordName: newValue.Name
  });

  widget.value = null;
}

添加关键字后,我的问题是我不知道如何 link 新填充的充满关键字的网格到创建中的新挑战,以便用这些关键字填充它。这是它在 Grid 对象上的样子:

Screenshot for grid

我可以仅使用绑定来实现吗?我应该编写脚本吗? 欢迎任何帮助。我想我的问题实际上是:如何根据该对象与其他对象之间的关系将网格绑定到创建(和编辑)中的对象?

几小时后终于解决了。我用过:

@datasources.Challenge.modes.create.item.ChallengeKeyword

它允许处理正在创建的项目的数据"mode"。