Javascript 在我的Meteor应用程序中,当我单击链接时,路由器不会呈现页面
我正在尝试构建一个多聊天室应用程序。我使用路由器,所以当用户点击我网站上的链接(到聊天室,用代码标记)时,它会将他们路由到一个新模板。但是,当有人单击链接时,链接URL会显示在地址栏中,但不会呈现页面。但是如果我直接访问链接,它就会被渲染。所以基本上我的链接不会像它们应该去的那样去任何地方。另外,当我单击链接时,我在控制台中得到一个错误:“来自Deps重新计算的异常:”(下面是完整的错误代码) 下面是代码,先是html,然后是Meteor javascript。我用html和js对代码的相关部分进行了注释 HTML:Javascript 在我的Meteor应用程序中,当我单击链接时,路由器不会呈现页面,javascript,html,meteor,handlebars.js,Javascript,Html,Meteor,Handlebars.js,我正在尝试构建一个多聊天室应用程序。我使用路由器,所以当用户点击我网站上的链接(到聊天室,用代码标记)时,它会将他们路由到一个新模板。但是,当有人单击链接时,链接URL会显示在地址栏中,但不会呈现页面。但是如果我直接访问链接,它就会被渲染。所以基本上我的链接不会像它们应该去的那样去任何地方。另外,当我单击链接时,我在控制台中得到一个错误:“来自Deps重新计算的异常:”(下面是完整的错误代码) 下面是代码,先是html,然后是Meteor javascript。我用html和js对代码的相关部分
我想,你刚才的代码输入错误了。。而不是
您正在使用meteorite和router,对吗?您的javascript控制台中有任何错误吗?这些可能有关于可能导致此问题的代码部分的更多信息。是的,我得到的错误是:“来自Deps重新计算的异常:_copyAttributes…”知道如何解决此问题吗?是的,我还安装了Meteorite和router。npm安装陨石-g和mrt添加routerI修复了错误,谢谢!我只是尝试使用事件路由到房间模板。它不起作用。房间主页的链接,每当我点击其中一个,由于某种原因,页面不会被重新呈现。但是如果我直接访问链接,它会加载。。。当我点击链接“来自Deps重新计算的异常:_copyAttributes…”时,控制台中出现错误。在我更正了输入错误后,控制台中没有出现此错误,并且您的代码按预期工作。顺便说一句。您仍然有您忘记的代码输入错误=。。class=“row”:-)天哪,多么愚蠢的错误。老兄,我需要更加小心!非常感谢,我不知道为什么我没有看到:)也感谢事件处理程序代码。。。这是一个很好的替代我编写代码的方式。
<head>
<title>testChat</title>
</head>
<body>
<div class"row">
{{> room}}
{{renderPage}}
</div>
</body>
<template name="home">
<div class="span6">
<h1>Welcome to Meteor Chat</h1>
<p>Please a select a room to chat in, or create a new one</p>
</div>
</template>
<template name="room">
<table>
{{#each rooms}}
<tr>
<td><a href="/rooms/{{_id}}">{{name}}</a></td> <!-- THIS IS THE LINK! -->
<td>{{members}}</td>
<td>{{last_activity}}</td>
</tr>
{{/each}}
<tr>
<td colspan="3">
<input type="text" name="name" placeholder="Enter your chatroom name"></input>
<button type="submit" class="btn btn-primary pull-right">
<i class="icon-plus"></i> Create Room
</button>
</td>
</tr>
</table>
</template>
<template name="chatRoom">
<h1> You are in chat room {{id}} </h1>
</template>
Rooms = new Meteor.Collection('rooms');
if (Meteor.isServer && Rooms.find().count() == 0) {
var roomsA = [
{name: 'Meteor Talk', members: 3, last_activity: '1 minute ago', id: 0,
messages: [
{author: 'Tom', text: 'Hi there Sacha!'},
{author: 'Sacha', text: 'Hey Tom, how are you?'},
{author: 'Tom', text: 'Good thanks!'},
]},
{name: 'Meteor Development', members: 2, last_activity: '5 minutes ago', id: 1},
{name: 'Meteor Core', members: 0, last_activity: '3 days ago', id: 2}
];
for (var i = 0; i < roomsA.length; i++) {
Rooms.insert(roomsA[i]);
};
}
if (Meteor.isClient) {
Meteor.Router.add({
'/': 'home',
'add': function () { return 'test'},
'/rooms/:id': function(id) { //THIS IS THE ROUTER CALL TO THE ROOMS LINKS
Session.set('currentRoomId', id);
return 'chatRoom'
}
});
Template.room.rooms = function () {
return Rooms.find();
};
Template.chatRoom.id = function() {
var id = Session.get('currentRoomId', id);
return id;
};
console.log(Rooms.find().fetch());
}
Exception from Deps recompute: _copyAttributes@http://localhost:3000/packages/spark/patch.js?e76412b922e47b6c2c1f890e3bc10fd13bdecfef:494
match@http://localhost:3000/packages/spark/patch.js?e76412b922e47b6c2c1f890e3bc10fd13bdecfef:249
@http://localhost:3000/packages/spark/patch.js?e76412b922e47b6c2c1f890e3bc10fd13bdecfef:61
visitNodes@http://localhost:3000/packages/spark/patch.js?e76412b922e47b6c2c1f890e3bc10fd13bdecfef:17
visitNodes@http://localhost:3000/packages/spark/patch.js?e76412b922e47b6c2c1f890e3bc10fd13bdecfef:18
visitNodes@http://localhost:3000/packages/spark/patch.js?e76412b922e47b6c2c1f890e3bc10fd13bdecfef:18
visitNodes@http://localhost:3000/packages/spark/patch.js?e76412b922e47b6c2c1f890e3bc10fd13bdecfef:18
visitNodes@http://localhost:3000/packages/spark/patch.js?e76412b922e47b6c2c1f890e3bc10fd13bdecfef:18
visitNodes@http://localhost:3000/packages/spark/patch.js?e76412b922e47b6c2c1f890e3bc10fd13bdecfef:18
_patch@http://localhost:3000/packages/spark/patch.js?e76412b922e47b6c2c1f890e3bc10fd13bdecfef:79
@http://localhost:3000/packages/spark/spark.js?4af332696fb84f1c71f2e678ad0a267755b2b828:639
operate@http://localhost:3000/packages/liverange/liverange.js?5e6bc5ba11645802c3440658c75fcc2277537dd1:458
@http://localhost:3000/packages/spark/spark.js?4af332696fb84f1c71f2e678ad0a267755b2b828:640
withEventGuard@http://localhost:3000/packages/spark/spark.js?4af332696fb84f1c71f2e678ad0a267755b2b828:103
renderToRange@http://localhost:3000/packages/spark/spark.js?4af332696fb84f1c71f2e678ad0a267755b2b828:641
@http://localhost:3000/packages/spark/spark.js?4af332696fb84f1c71f2e678ad0a267755b2b828:864
_compute@http://localhost:3000/packages/deps/deps.js?651e87591167f4286e96438ff2566ba3357bff99:129
_recompute@http://localhost:3000/packages/deps/deps.js?651e87591167f4286e96438ff2566ba3357bff99:142
flush@http://localhost:3000/packages/deps/deps.js?651e87591167f4286e96438ff2566ba3357bff99:224
[native code]
<div class+"row"> you wanted <div class="row">
<td><a class="goToRoom" href="#">{{name}}</a></td>