我正在通过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