【问题标题】:Meteor 1.4. AutoForm validation message not showing流星 1.4。 AutoForm 验证消息未显示
【发布时间】:2017-05-24 17:37:57
【问题描述】:
  1. 我添加了 autoform packege (meteor add aldeed:autoform)
  2. 我添加了 collection2-core 包(流星添加 collection2-core)
  3. 我已经安装了 simpl-schema (npm i --save simpl-schema) 但表单仍然无法正常工作

/imports/api/rooms/rooms.js

import { Tracker } from 'meteor/tracker';
import { Mongo } from 'meteor/mongo';
import SimpleSchema from 'simpl-schema';
SimpleSchema.extendOptions(['autoform']);

export const Rooms = new Mongo.Collection('rooms');

Rooms.attachSchema(new SimpleSchema({
    title: {
        type: String,
        label: 'Title'
    },
    desc: {
        type: String,
        label: 'Description'
    },
    createdAt: {
        type: Date,
        autoValue(){
            return new Date();
        }
    },
}), {tracker: Tracker});

/imports/ui/pages/home.js

import { Template } from 'meteor/templating';

import './home.html';

import { Rooms } from '../../api/rooms/rooms.js'

Template.Home.helpers({
    rooms() {
        return Rooms.find({});
    },
    CollectionRooms() {
        return Rooms;
    }
});

/imports/ui/pages/home.html

<template name="Home">
    <div class="jumbotron">
        <div class="container text-center">
            <h1>Forum</h1>
            <p>“Don't raise your voice, improve your argument."</p>
        </div>
    </div>

    <div class="container-fluid bg-3">
        <h3 class="page-header">Choose your room</h3>

        {{> quickForm collection=CollectionRooms id="insertRoomsForm" type="insert"}}

        <div class="row grid-divider">
        {{#each rooms}}
            <div class="col-sm-4">
                <div class="col-padding">
                    <h3>{{title}}</h3>
                    <p>{{desc}}</p>
                </div>
            </div>
        {{/each}}
        </div>
    </div>
</template>

meteor-base@1.0.4             # Packages every Meteor app needs to have
mobile-experience@1.0.4       # Packages for a great mobile UX
mongo@1.1.17                   # The database Meteor supports right now
blaze-html-templates@1.0.4 # Compile .html files into Meteor Blaze views
reactive-var@1.0.11            # Reactive variable for tracker
tracker@1.1.3                 # Meteor's client-side reactive programming library

standard-minifier-css@1.3.4   # CSS minifier run for production mode
standard-minifier-js@2.0.0    # JS minifier run for production mode
es5-shim@4.6.15                # ECMAScript 5 compatibility for older browsers.
ecmascript@0.7.3              # Enable ECMAScript2015+ syntax in app code
shell-server@0.2.3            # Server-side component of the `meteor shell` command

autopublish@1.0.7             # Publish all data to the clients (for prototyping)
insecure@1.0.7                # Allow all DB writes from clients (for prototyping)
twbs:bootstrap
iron:router
aldeed:autoform
aldeed:collection2-core

我看到表单并将记录插入数据库,但没有显示验证消息以及为什么有“创建于”字段?我做错了什么?

【问题讨论】:

  • 你可以试试AutoForm.debug()然后重新提交表格看看有没有错误
  • 您希望它显示什么验证消息?如果您提交一个空白表格,数据库中存储了什么?其次,createdAt 正在显示,因为它是由您在架构中指定的。如果您需要它成为隐藏字段,请使用:createdAt: { type: Date, autoValue(){ return new Date(); }, autoform: { type: "hidden" } }
  • @blueren 感谢帮助找出 autoValue,我认为它会默认隐藏字段

标签: meteor meteor-autoform simple-schema meteor-collection2


【解决方案1】:

您的 Schema 中存在拼写错误,导致未包含 Tracker。这最终会导致您的表单没有(反应性)验证消息。更正后的代码是:

Rooms.attachSchema(new SimpleSchema({
    title: {
        type: String,
        label: 'Title'
    },
    desc: {
        type: String,
        label: 'Description'
    },
    createdAt: {
        type: Date,
        autoValue(){
            return new Date();
        }
    },
}, {tracker: Tracker}));

【讨论】:

  • 谢谢,是的,你是对的,编程让人失明)。我浪费了很多时间。你救了我的命)
猜你喜欢
  • 2014-12-05
  • 2016-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-17
  • 1970-01-01
  • 2021-05-29
相关资源
最近更新 更多