私はMeteor にcast.jsを実装しており、Iron Router を使用してサムネイルをクリックした後に大きな写真をレンダリングしようとしていますが、正しいパスのレンダリングに問題があります。サムネイルは問題なく表示されますが、写真をクリックするとエラーが発生しますNo route found for path:
。
各サムネイル写真をレンダリングするために使用しているテンプレートは
var renderTemplate = function(obj){
return "<a href='{{pathFor photo}}'><img class='img-rounded' src='" + obj.picture + "'></a>"
};
Template.userPhotos.rendered = function(){
var el = this.find('#cast');
var mycast = cast(el);
mycast.draw(renderTemplate);
this.handle = Meteor.autorun(function(){
var picture = Photos.find().fetch();
mycast
.data(picture , '_id')
.dynamic(150, 150, 10, 10);
});
}
そしてcast
、このテンプレートの id内に配置されます
<template name="userPhotos">
<div class="container">
<div class="photos">
<div id='cast'></div>
</div>
</div>
</template>
問題は、レンダリングされる href から発生しています。_id
写真を渡して、mongoDB で「ソース」と呼ばれる以下のテンプレートでより大きな写真をレンダリングしようとしています。
<template name="photo">
<div class="well">
<img class="img-rounded" src="{{source}}">
</div>
</template>
現在、ルーターは次のように設定されています。
this.route('photo', {
path: '/photo/:_id',
waitOn: function() {
return [
Meteor.subscribe('picture', this.params._id),
];
},
data: function() { return Photos.findOne(this.params._id); }
});
写真をクリックすると、このパスに送られ、このエラーがスローされますOh no! No route found for path: "/%7B%7BpathFor"
。%7B は URL{
を表すため、テンプレートが文字列として渡されるときに、ハンドルバーまたは Iron Router がテンプレートを変換していないように見えます。
このコードを改善する方法について何か考えはありますか?
前もって感謝します!