0
我有一个非常奇怪的错误。我有一个按钮的点击事件设置,它通过Router.go发送到另一个模板。但是,页面将会转换,并且会传递数据,但url不会更改。所以我不能在下一个转换中使用参数(这是注册流程)。流星Router.go不改变网址,即使页面转换
Template.tellUsAboutYourself.events({
'click .continueHide': function(){
var mealsPerDay = $('.checkbox_check1:checked').val();
var snacksPerDay = $('.checkbox_check2:checked').val();
var typesOfSnacks = '';
$('.checkbox_check3:checked').each(function(i){
typesOfSnacks = typesOfSnacks + '4' + $(this).val();
});
var homeCooked = $('.checkbox_check4:checked').val();
var sodaOften = $('.checkbox_check5:checked').val();
var coffeeOften = $('.checkbox_check6:checked').val();
var coffeeHow = $('.checkbox_check6a:checked').val();
var juiceOften = $('.checkbox_check7:checked').val();
var threeFoodsOften = '';
$('.checkbox_check8:checked').each(function(i){
threeFoodsOften = threeFoodsOften + '4' + $(this).val();
});
var activityLevel = $('.checkbox_check9:checked').val();
var id = NutritionData.insert({name: this.name, last_name: this.last_name, ideal_weight: this.ideal_weight, height: this.height, current_weight: this.current_weight, gender: this.gender, age: this.age, mealsPerDay: mealsPerDay, snacksPerDay: snacksPerDay, typesOfSnacks: typesOfSnacks, homeCooked: homeCooked, sodaOften: sodaOften, coffeeOften: coffeeOften, coffeeHow: coffeeHow, juiceOften: juiceOften, threeFoodsOften: threeFoodsOften, activityLevel: activityLevel});
console.log(id);
Router.go('yourResults', {id: id});
}
});
然后在router.js文件我有以下几点:
Router.route('/yourResults/:id', {
name: 'yourResults',
trackPageView: true,
layoutTemplate: false,
data: function(){
return NutritionData.find({_id: this.params.id}).fetch()[0]
},
});
的ID是正确的,但由于某种原因它不更改URL。有没有人有过这个问题?我一直在重构我的代码到处寻找错误,但我的想法已经枯竭。
谢谢
在你的路线不应该'layoutTemplate'是一个字符串而不是'false'? –
不,这是不是问题,我用这个许多其他模板..我删除它,看看它是否是这样,但问题仍然存在。但是,仍然感谢你的回应。 – socialight
顺便说一句,你可以使用NutritionData.findOne(this.params.id)代替NutritionData.find({_ id:this.params.id})。fetch()[0] - 这种方式将会缩短一点并且更容易理解。 – naneri