Meteor 0.6.5 - 账户-ui-bootstrap-dropdown无效的基本示例

时间:2013-10-09 20:32:30

标签: meteor

这是我的项目结构:

├── app.html
├── app.js
├── packages/
│   └── accounts-ui-bootstrap-dropdown -> /Users/jon/.meteorite/packages/accounts-ui-bootstrap-dropdown/erobit/meteor-accounts-ui-bootstrap-dropdown/c8b29d2e7f8611d6dec9d6d23c1c2b94e000b0fb/
├── smart.json
└── smart.lock

`meteor list --using'给出以下结果:

standard-app-packages
autopublish
insecure
preserve-inputs
accounts-ui-bootstrap-dropdown
bootstrap
accounts-password

app.html如下:

<head>
  <title>app</title>
</head>

<body>
    {{> header}}
</body>

<template name="header">
    <header class="navbar">
        <div class="navbar-inner">
            <div class="nav-collapse collapse">
                <ul>
                    <li>{{loginButtons}}</li>
                </ul>
            </div>
        </div>
    </header>
</template>

app.js如下:

Accounts.ui.config({ passwordSignupFields: 'USERNAME_AND_OPTIONAL_EMAIL' });

尝试启动应用时出现以下错误:

[[[[[ ~/dev/app ]]]]]

=> Meteor server running on: http://localhost:3000/
W202309-16:30:21.275(-4)? (STDERR) /Users/jon/.meteor/tools/3cba50c44a/lib/node_modules/fibers/future.js:173
W202309-16:30:21.365(-4)? (STDERR)                      throw(ex);
W202309-16:30:21.365(-4)? (STDERR)                            ^
W202309-16:30:21.366(-4)? (STDERR) TypeError: Cannot call method 'config' of undefined
W202309-16:30:21.366(-4)? (STDERR)     at app/app.js:1:48
W202309-16:30:21.366(-4)? (STDERR)     at app/app.js:24:3
W202309-16:30:21.367(-4)? (STDERR)     at mains (/Users/jon/dev/app/.meteor/local/build/programs/server/boot.js:153:10)
W202309-16:30:21.367(-4)? (STDERR)     at Array.forEach (native)
W202309-16:30:21.367(-4)? (STDERR)     at Function._.each._.forEach (/Users/jon/.meteor/tools/3cba50c44a/lib/node_modules/underscore/underscore.js:79:11)
W202309-16:30:21.367(-4)? (STDERR)     at /Users/jon/dev/app/.meteor/local/build/programs/server/boot.js:80:5
=> Exited with code: 1

我做错了什么?

2 个答案:

答案 0 :(得分:1)

Accounts.ui.config仅在客户端上可用(请参阅文档here),因此您需要将其包含在Meteor.isClient中。用这个替换你的app.js应该有效:

if(Meteor.isClient) {
  Accounts.ui.config({ passwordSignupFields: 'USERNAME_AND_OPTIONAL_EMAIL' });
}

或者,您可以创建一个名为“client”的文件夹和一个名为“server”的文件夹,Meteor将知道如何在不使用isClient和isServer的情况下处理这些文件夹。

有关详细信息,请参阅文档中的“structuring your app”或“我应该将文件放在何处?”在unofficial faq

答案 1 :(得分:0)

我收到此错误,因为我没有添加帐户基础和帐户-ui。我刚刚添加了accounts- [service]包。一旦我添加它们,错误消失了,一切都很好。