AutoForm自定义字段对象数组

时间:2016-02-05 00:30:06

标签: jquery meteor meteor-autoform

我有一个用户架构,用户可能有一个团队列表,如本部分所示:

"teams": {
  type: [Object],
  optional: true,
  autoform: {
    label: "Teams",
    'label-type': 'stacked',
    afFieldInput: {
        type: "tokenInput"
    }
  }
},
"teams.$.name": {
  type: String,
  optional: true,
  autoform: {
    ommit: true
  }
},
"teams.$.address": {
  type: String,
  optional: true,
  autoform: {
    ommit: true
  }
},

我想使用我使用jQuery标记输入创建的简单自定义字段:

AutoForm.afTeams("tokenInput", {
  template: "afTokenInput",
  valueOut: function () {
    return $("#tokenInput").tokenInput('get');
  }
});

Template.afTeams.rendered = function() {
    token();
    function token() {
        $("#tokenInput").tokenInput('/api/teams/?q', {
            onReady: function() {
                console.log('Ready...');
            },
            preventDuplicates: true,
            minChars: 3,
            propertyToSearch: 'name'
        });
    }
}

模板:

<template name="afTokenInput">
    <input id="tokenInput" class="token" type="text" />
</template>

我想只为团队字段显示jQuery令牌输入,然后在提交时返回一个对象数组。

仅当架构中的团队类型为String时才会呈现我的模板,但对于对象Array,它会呈现标准afArrayField和afObjectField。

http://i.stack.imgur.com/MsxIK.png

有没有办法覆盖这个?到:

http://i.stack.imgur.com/VNFGe.png

2 个答案:

答案 0 :(得分:1)

这可能有效:

afQuickField: {
  type: "tokenInput"
}

并确保在“名称”和“地址”字段中使用“省略”而不是“省略”

答案 1 :(得分:0)

我必须将类型放在autoform对象中:

"teams": {
  type: [Object],
  optional: true,
  autoform: {
    type: "tokenInput",
    label: "Teams",
    'label-type': 'stacked'
  }
},

将{{atts}}放在模板的某处以触发valueOut:

<template name="afTokenInput">
    <input type="hidden" {{atts}} />
    <input id="tokenInput" class="token" type="text" />
</template>