我正在通過Discover Meteor教程的方式工作,一個令人討厭的問題不斷彈出。當我使用控制檯更改應用程序數據時,應用程序不會按照承諾自動更新被動數據源。不知道發生了什麼事。下面是一個例子來說明問題(並找出它是代碼本身還是別的東西)。流星會話對象不反應
初始化應用程序,包括下劃線和鐵路由器:
meteor create testApp
meteor add underscore
meteor add iron:router
創建以下文件結構:
.
└── testApp
├── .meteor
| └── [meteor auto generated files]
├── lib
| └── router.js
└── client
├── layout.html
├── layout.js
├── main.html
└── pageone.html
router.js
Router.configure({
layoutTemplate: 'layout',
});
Router.route('/', {name:'pageone'});
個
的layout.html
<template name="layout">
<div class="container">
<header class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<a class="navbar-brand" href="{{pathFor 'pageone'}}">{{pageTitle}}</a>
</div>
</header>
<div id="main">
{{> yield}}
</div>
</div>
</template>
layout.js
Template.layout.helpers({
pageTitle: function() { return Session.get('pageTitle') || "placeholder"; }
});
main.html中
<head>
<title>testApp2</title>
</head>
pageone.html
<template name="pageone">
<div class="message">
<h1>Test App for SO</h1>
</div>
</template>
現在使用meteor
命令運行從testApp
目錄中的應用程式,前往localhost:3000
在瀏覽器中。
現在鍵入Session.set('pageTitle', 'New Title');
到控制檯中。
我使用的是Chrome,當我這樣做時,我正在監視流星服務器的終端窗口打印出Client modified -- refreshing
。然而,即使Session
對象被認爲是被動的,也沒有任何反應。然後,如果我刷新標籤頁,我會看到一個空白屏幕,如果我想讓我的應用程序再次工作,則必須手動重新啓動流星服務器。
有人知道這裏發生了什麼嗎?
@Kyll。我已經按照你的建議添加了一個MCVE。希望這可以讓事情更清楚。 – jdw