0

私は現在 2 つのテンプレートを持っている単純な SimpleSchema だと思ったものを持っています。1 つは新しいドキュメントをコレクションに挿入するためのクイックフォームを含み、もう 1 つは最初のテンプレートからドキュメントを更新するクイックフォームでもあります。

挿入フォームは正常に機能しますが、更新テンプレートを読み込もうとすると、コンソールに次のエラーが表示され、送信ボタンが機能しません。同様の問題を抱えていた人によると、エラーは通常再帰関数によって引き起こされますが、どこにも見つかりません。

Exception from Tracker recompute function:
debug.js:41 RangeError: Maximum call stack size exceeded
    at Object (native)
    at isObject (http://localhost:3000/packages/aldeed_simple-schema.js?e210968641793751997ffe233af33b53af8566e4:1000:18)
    at isBasicObject (http://localhost:3000/packages/aldeed_simple-schema.js?e210968641793751997ffe233af33b53af8566e4:1024:10)
    at parseObj (http://localhost:3000/packages/aldeed_simple-schema.js?e210968641793751997ffe233af33b53af8566e4:1147:15)
    at http://localhost:3000/packages/aldeed_simple-schema.js?e210968641793751997ffe233af33b53af8566e4:1159:11
    at Function._.each._.forEach (http://localhost:3000/packages/underscore.js?0a80a8623e1b40b5df5a05582f288ddd586eaa18:159:22)
    at parseObj (http://localhost:3000/packages/aldeed_simple-schema.js?e210968641793751997ffe233af33b53af8566e4:1155:9)
    at http://localhost:3000/packages/aldeed_simple-schema.js?e210968641793751997ffe233af33b53af8566e4:1159:11
    at Function._.each._.forEach (http://localhost:3000/packages/underscore.js?0a80a8623e1b40b5df5a05582f288ddd586eaa18:159:22)
    at parseObj (http://localhost:3000/packages/aldeed_simple-schema.js?e210968641793751997ffe233af33b53af8566e4:1155:9)

ここに私の2つのテンプレートがあります:

<template name="newWeddingPage1">
    <div class="  col-sm-10 col-sm-offset-1">
    <div class="  col-md-6">
        <div class="well well-sm">

        {{> quickForm collection="Weddings" id="insertWeddingInfo1" omitFields="email, phone, name, price" type="insert"}}

    </div>
    </div>

    <div class="  col-md-6">
        <div class="well well-sm">
        {{#each theweddingdetails}}
        <h1 id="price">{{duration}}</h1>
        {{/each}}


    </div>
    </div>



  </div>
</template>


<template name="newWeddingPage2">
    <div class="  col-sm-10 col-sm-offset-1">
    <div class="  col-md-6">
        <div class="well well-sm">
        {{#each theweddingdetails}} 
        {{> quickForm collection="Weddings" id="updateWeddingInfo1" doc="this" omitFields="email, phone, name, price" type="update"}}
        {{/each}}

    </div>
    </div>


  </div>
</template>

ここに私の簡単なスキーマ:

Weddings.attachSchema(new SimpleSchema({

  address: {
    type: String,
    label: "Address",
    optional: true
  },
  startDate: {
    type: Date,
    label: "Date of shooting",
    optional: false,
  },
  startTime: {
    type: String,
    optional: true,
    autoform: {
      afFieldInput: {
        type: "time"
      }
    }
  },
  duration: {
    type: Number,
    label: "Duration (in hours)",
    optional: true
  },
  price: {
    type: Number,
    label: "Price",
    optional: true,
    autoform: {
      type: "hidden",
      label: false
    },
    autoValue:function(){ return 0 }
  },
  email: {
    type: String,
    optional: true,
    autoform: {
      afFieldInput: {
        type: "email"
      }
    }
  },
  phone: {
    type: Number,
    optional: true,
    autoform: {
      afFieldInput: {
        type: "tel"
      }
    }
  },
  name: {
    type: String,
    label: "Contact Person",
    optional: true
  },
  createdBy: {
    type: String,
    autoform: {
      type: "hidden",
      label: false
    },
    autoValue:function(){ return this.userId }
},
createdAt: {
    type: Date,
    autoform: {
      type: "hidden",
      label: false
    },
    autoValue:function(){ return new Date(); }
}
}));

誰が私が間違っているのか手がかりを持っていますか?

ここ数時間、ビットをいじっています:/

4

1 に答える 1

2

更新フォームには がありますdoc="this"。これは、文字列「this」をドキュメントとして渡すだけであることを意味します。

引用符なしで試してくださいdoc=thisthisそうすれば、コンテキスト変数をドキュメントとして渡すことができます。ルーターまたは他の場所で、データコンテキストとして適切なドキュメントを渡したので、this

于 2015-09-18T14:50:46.900 に答える