【问题标题】:Meteor template gets created twice, after adding accounts-ui packageMeteor 模板在添加 accounts-ui 包后被创建了两次
【发布时间】:2016-02-11 00:57:27
【问题描述】:

我开始学习流星,并设置了一个小型测试项目。我做了一个像 test.html 这样的简单模板:

<head>

        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="description" content="">
        <meta name="author" content="">

        <title>Test</title>

</head>
<body>

 {{> TestPage}}

</body>
<template name="TestPage">
    <p>hello</p>
</template>

我还安装了iron-router,并尝试设置了路由。然后我检查了meteor run,一切正常,我得到了一个带有hello 文字标志的普通页面。之后我想尝试制作简单的登录页面,我添加了meteor add accounts-ui accounts-password。之后,当我尝试加载我的页面时,hello 显示了两次。所以我去了js部分尝试了解发生了什么。这是完整的 test.js:

var textMessage = "";
var textMessageDep = new Deps.Dependency;

var getTextMessage = function()
{
    textMessageDep.depend();
    return textMessage;
};
var setTextMessage = function (newValue) {
    if (newValue !== textMessage)
        textMessageDep.changed();
    textMessage = newValue;
};
Template.TestPage.onRendered(function () {
   console.log('on rendered');
});
Template.TestPage.onCreated(function () {
    console.log('on created');
});

因此,我设法在 js 控制台中获得以下输出:

on created
on created
on rendered

On created 事件由于某种原因被调用了两次,这就是为什么我得到了两个模板副本。如何正确克服这个问题?我假设流星等待Meteor.Users 集合准备好?我什至没有将任何用户添加到此集合中。

这也是我的路由器配置的样子:

Router.map(function() {
    this.route('/', {
        onBeforeAction: function () {
        // here planned to add 
        // if(!Meteor.user()) {}
        // 
               this.render('TestPage'); 
        }

    });
});

【问题讨论】:

    标签: javascript node.js meteor meteor-accounts accounts


    【解决方案1】:

    这是因为您要求 Meteor 渲染模板两次。默认情况下,meteor 将首先加载带有body 标签的任何文件,也就是您此时放置TestPage 模板的文件。然后你将另一个TestPage 的渲染放入onBeforeAction,因此,另一个TestPage 出现在页面上。解决这个问题的一种方法是删除onBeforeAction中的那个

    指定要在路由器中渲染的模板的正确方法是

    this.route('TestPage', {
        path: '/'
    });
    

    并删除body中的那个

    【讨论】:

      猜你喜欢
      • 2016-12-06
      • 1970-01-01
      • 2014-08-25
      • 1970-01-01
      • 2014-10-08
      • 1970-01-01
      • 1970-01-01
      • 2014-05-09
      • 1970-01-01
      相关资源
      最近更新 更多