Meteor-使用Iron路由器的多数据上下文
我刚开始使用Meteor和Iron路由器 这里我试图使用两种数据上下文,但显然我做得不对。我在谷歌上搜索过,但这似乎不是一个很常见的问题,但我想应该可以传递两个或更多的数据上下文,对吗 这是我的routing.jsMeteor-使用Iron路由器的多数据上下文,meteor,iron-router,Meteor,Iron Router,我刚开始使用Meteor和Iron路由器 这里我试图使用两种数据上下文,但显然我做得不对。我在谷歌上搜索过,但这似乎不是一个很常见的问题,但我想应该可以传递两个或更多的数据上下文,对吗 这是我的routing.js Router.route('/package/:_id', function () { //Returns the selected/clicked package var package = Packages.findOne({_id: this.param
Router.route('/package/:_id', function () {
//Returns the selected/clicked package
var package = Packages.findOne({_id: this.params._id});
//Returns all items in Items collection.
var listItems = Items.find();
this.render('PackageDetails', {data: package, listItems});
});
在我的模板中,我试图使用两个上下文中的数据—一个用于填充dropdownlist,另一个用于显示所选包的数据
<template name="PackageDetails">
<label class="label label-default">Item type: </label><p>{{ item }}</p>
<label class="label label-default">Quantity: </label><p>{{ quantity }}</p>
<label class="label label-default">Id: </label><p>{{ _id }}</p>
<form class="change-state">
<div class="input-group">
{{> sAlert}}
<select class="form-control" name="state">
<option selected="true" disabled>Select State</option>
{{#each states}}
<option>{{name}}</option>
{{/each}}
</select>
</div><br>
<div class="input-group">
<input type="submit" value="Change state" class="btn btn-success"/>
</div>
</form><br>
</template>
我通过在返回数据的模板上使用助手解决了这个问题,但我更愿意从路由中获取所有数据
有什么想法吗?是否有更好的方法来实现这一点,或者是否有可能通过Iron Router传递两个数据上下文,在这种情况下,如何传递?您的数据对象声明语法错误,应该是:
this.render('PackageDetails', {
data: {
package: package,
listItems: listItems
}
});
然后在模板中,可以使用{{package.property}和{{each listItems}}引用数据上下文。谢谢!我已经尝试了一些不同的语法,实际上类似于这个,但表面上不是这样的。顺便说一句,你知道this.route和Router.route之间的区别吗?我猜它基本上是旧语法还是新语法?。看到他们两个,但不知道使用哪一个…除了使用Router.route没有区别,这是较新的语法。