2015-08-08 66 views
3

我嘗試在我的Meteor應用程序中創建類型爲method的autoform。meteor-autoform無法顯示窗體:無法讀取未定義的屬性「模式」

客戶端HTML:

<template name="addLeader"> 
    <div id="addLeader" class="addLeader"> 
     <h2></h2> 
     {{#autoForm schema=LeaderSchema id="insertPostForm" type="method" meteormethod="serverMethod"}} 
     {{> afQuickField name='userName' class='form-input'}} 
     {{> afQuickField name='secondName' class='form-input'}} 
     {{> afQuickField name='email' class='form-input'}} 
     {{> afQuickField name='password' type='password' class='form-input'}} 
     <button type="submit" class="btn btn-default full-width accept-button"><span class="glyphicon glyphicon-ok "></span></button> 
     {{/autoForm}} 
     <button class="btn btn-default full-width cancel-button"><span class="glyphicon glyphicon-remove "></span></button> 
    </div> 
</template> 

客戶端JS:

Template.adminPanel.helpers({ 

    LeaderSchema: function() { 
     return Schema.LeaderSchema; 
    } 
}); 

架構中的lib:

Schema = {}; 

Schema.LeaderSchema = new SimpleSchema({ 
    userName: { 
     type: String, 
     label: "" 
    }, 
    secondName: { 
     type: String, 
     label: "" 
    }, 
    email: { 
     type: String, 
     label: "" 
    }, 
    password: { 
     type: String, 
     label: "" 
    } 
}); 

服務器方法:

Meteor.methods({ 
    serverMethod: function(doc) { 
     console.log(doc); 
    } 
}); 

上觀看,我想顯示錶單,表單域不顯示,我得到這個錯誤:

Exception in template helper: TypeError: Cannot read property 'schema' of undefined 
    at Object.getDefs (http://localhost:3000/packages/aldeed_autoform.js?666ec8103d59fae9aad5553df832ececaa593358:255:18) 
    at Object.autoFormGetComponentContext [as getComponentContext] (http://localhost:3000/packages/aldeed_autoform.js?666ec8103d59fae9aad5553df832ececaa593358:516:20) 
    at Object.afQuickFieldIsGroup (http://localhost:3000/packages/aldeed_autoform.js?666ec8103d59fae9aad5553df832ececaa593358:7489:30) 
    at bindDataContext (http://localhost:3000/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:2880:16) 
    at Blaze._wrapCatchingExceptions (http://localhost:3000/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:1651:16) 
    at http://localhost:3000/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:2928:66 
    at Function.Template._withTemplateInstanceFunc (http://localhost:3000/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:3476:12) 
    at wrapHelper (http://localhost:3000/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:2927:27) 
    at Object.Spacebars.call (http://localhost:3000/packages/spacebars.js?7bafbe05ec09b6bbb6a3b276537e4995ab298a2f:172:18) 
    at http://localhost:3000/packages/aldeed_autoform.js?666ec8103d59fae9aad5553df832ececaa593358:7440:22 

當我從HTML文件中刪除表單域,然後我不明白的錯誤。可能是什麼原因?難道我做錯了什麼?

我正在用autoform docs這樣做。

回答

3

您使用了錯誤的模板作爲LeaderSchema幫手。

這應該工作:

Template.addLeader.helpers({ // not Template.adminPanel.helpers 
    LeaderSchema: function() { 
     return Schema.LeaderSchema; 
    } 
}); 
+0

好,我有一個主模板和嵌套在這其中,我還沒有看到這兩個模板。謝謝 – Filip

+0

不客氣。 –

相關問題