我開始學習流星,我確實設置了一個小型測試項目。我做了一個簡單的模板,像這樣的test.html:流星模板創建兩次後,添加accounts-ui包
<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');
}
});
});
感謝這並幫助我在 – Vladislav