0

Angenommen, ich habe alles wie Aldeed beschrieben here, um eine benutzerdefinierte Formularvorlage zu erstellen. Was habe ich vergessen oder wo ist der Fehler, dass der Autoform-Tag nicht vorhanden ist?Ausnahme beim Zurückrufen Callback: Fehler: Keine solche Vorlage: AutoForm

Actual html examle:

<template name="afType_talkBar"> 
    {{#autoform schema=Schema.Nachrichten id="sendMessageForm" type="insert"}} 
    <fieldset class="clubChat__input"> 
    <div class="clubChat__message-bar"> 
     {{> afQuickField name='chatroomId'}} 
     {{> afQuickField name='userName'}} 
     <div class="form-group{{#if afFieldIsInvalid name='content'}} has-error{{/if}}"> 
       <div class="input-group"> 
       <span class="input-group-addon">$</span> 
       {{> afFieldInput name='content'}} 
       <span class="input-group-addon">/each</span> 
       </div> 
       {{#if afFieldIsInvalid name='content'}} 
       <span class="help-block">{{afFieldMessage name='content'}}</span> 
       {{/if}} 
     </div> 
     <input type="submit" value="{{_ 'chatAction.send'}}"> 
    </div> 
    </fieldset> 
    {{/autoform}} 
</template> 

Und der Client-Seite talkBar.js

import './talkBar.html'; 

// Import necessary js Packages 
import { Meteor } from 'meteor/meteor'; 
import { Template } from 'meteor/templating'; 

import { Nachrichten } from '../../../api/nachrichten/nachrichten'; 

Bonus Frage.

Template.talkBar.helpers({ 
    nachrichtenCollection(){ 
    return Nachrichten; 
    } 
}); 
Einfügen

Ergebnisse in eine Uncaught Typeerror: Kann nicht Eigentum 'Helfer' undefinierter

lesen Sieht aus wie ich grundlegende etwas fehlt bin

Antwort

0

Typo Fehler anstelle von Autoform muss es auto F orm

Korrekter Code sollte wie folgt aussehen werden:

<template name="afType_talkBar"> 
    {{#autoForm schema=Schema.Nachrichten id="sendMessageForm" type="insert"}} 
    <fieldset class="clubChat__input"> 
    <div class="clubChat__message-bar"> 
     {{> afQuickField name='chatroomId'}} 
     {{> afQuickField name='userName'}} 
     <div class="form-group{{#if afFieldIsInvalid name='content'}} has-error{{/if}}"> 
       <div class="input-group"> 
       <span class="input-group-addon">$</span> 
       {{> afFieldInput name='content'}} 
       <span class="input-group-addon">/each</span> 
       </div> 
       {{#if afFieldIsInvalid name='content'}} 
       <span class="help-block">{{afFieldMessage name='content'}}</span> 
       {{/if}} 
     </div> 
     <input type="submit" value="{{_ 'chatAction.send'}}"> 
    </div> 
    </fieldset> 
    {{/autoForm}} 
</template> 
0

Ihre Template-Namen in helper Definition falsch ist. Das Muster ist als unten

Template.Template_Name.helpers({});

Sie haben eine falsche Vorlagennamen benannt. Es muss wie unten sein,

Template.afType_talkBar.helpers({});

auch verwendet, um Sie relativen Pfad, während Sie eine Sammlung in Client-JS-Datei deklarieren. Sie können wie folgt verwenden:

import { nachrichten } from '/import/api/nachrichten/nachrichten.js';

Dies ist viel bessere Konvention, weil Sie schneiden können Ihre js-Datei irgendwo anders nach Bedarf einfügen und Sie können auch viele js-Dateien erstellen und mischen sie in Zukunft, so der Pfad wird gemäß Ihrer Erklärung ändern.

+0

Vielen Dank für diesen Teil zu klären. War nicht sicher, dass sich der Vorlagenname auf den Namen des Helfers bezieht. Aber immer noch wird die Autoform nicht rendern. – theFan

+0

Was ist der Fehler? Überprüfen Sie die Konsole, wenn etwas erscheint. Frage mit Fehlerdetails aktualisieren Ich habe dir die Antwort deiner Frage gegeben. Wenn jetzt der Fehler für Autoform ist, dann ist das ein anderes Problem. –

+0

Der Fehler ist/war der Titel dieser Frage. Es war in der Tat etwas Grundlegendes. StackOverflow sollte einen Tippfehler-Eimer installieren;) – theFan

Verwandte Themen