【问题标题】:Meteor autoform hidden inputs based on select-radioMeteor 基于 select-radio 自动生成隐藏输入
【发布时间】:2016-01-03 08:52:08
【问题描述】:

我正在尝试根据选择的单选按钮链接隐藏的输入,但我一直坚持我将如何去做。 autoform select-radio 选项助手创建了一个具有内部 id 的数组,这使得附加另一个助手变得困难,并且值和名称也不够唯一。

我正在考虑可能通过值数组将对象添加到单选按钮值中,然后在 before 钩子中进行一些处理,但是 uhhhhh,我真的不知道该怎么做。如果可能,我希望模板中不要有额外的输入字段。

模板.example.html

{{#autoForm collection="arrayscollecti" id="insert-form" doc=currentDoc type="insert"}}
            {{> afFieldInput name="arrays"  options=radioHelper type="select-radio"}}
{{/autoform}}

Template.example.helper

radioHelper: function() {
 var array0 = this.object[0].objectA.objectA.value;
 var array1 = this.object[1].objectA.objectA.value;
 var hidden0 = this.object[0].objectA.objectB.differentvalue;
 var hidden1 = this.object[1].objectA.objectB.differentvalue;
 return [
    {label: array0, value: array0},
    {label: array1, value: array1}
   ];
},

【问题讨论】:

    标签: javascript meteor meteor-autoform


    【解决方案1】:

    好的,所以我想通了。这个问题在任何地方都没有答案,因为它确实特定于这种情况,但我希望标题中的关键字能帮助其他人了解如何将多个隐藏字段发布到自动表单中并传递简单的模式。如果其他人对此有解决方案,请发布答案。

    帮助器只接受字符串作为值,所以我对其进行了字符串化

    radioHelper: function() {
    var array0 = this.object[0].objectA.objectA.value;
    var array1 = this.object[1].objectA.objectA.value;
    var hidden0 = this.object[0].objectA.objectB.differentvalue;
    var hidden1 = this.object[1].objectA.objectB.differentvalue;
    var objectArray0 = JSON.stringify({"simpleschema1": this.object[0].objectA.objectA.value, "simpleschema2": "VARorNUMorSTRINGorOBJECT"}
    var objectArray1 = JSON.stringify({"simpleschema1": this.object[1].objectA.objectA.value, "simpleschema2": VARorNUMor"STRING"orOBJECT}
    return [
        {label: array0, value: objectArray0},
        {label: array1, value: objeactArray1}
       ];
    },
    

    一旦你完成了,你需要创建一个 before 钩子,它将通过模式运行并希望通过。如果没有,那么您需要查看您的助手或查看 console.logs 以查看信息是否正确。我留下了我的 createdat 和 createdby 字段,以防有人想将它们添加到数据库中而不暴露在 HTML 中。

     AutoForm.hooks({
     'insert-form': {
    
    before: {
      insert: function(doc, template) {
        var result = JSON.parse(doc.arrays);
        doc = result;
        doc.createdat = JSON.stringify(moment()._d);
        doc.ownerid = Meteor.userId();
        return doc;
      }
     }       
    });
    

    【讨论】:

      猜你喜欢
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      • 2013-03-21
      • 2017-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-10
      相关资源
      最近更新 更多