Pretty Urls с Iron Router и дружественным пакетом слизней
Я не могу понять, как выводить правильные данные с помощью этого симпатичного пакета, любая помощь будет принята с благодарностью.
Я использую следующий пакет из атмосферы в Метеоре. https://atmospherejs.com/todda00/friendly-slugs
У меня есть отправка формы, которая отправляет представление в коллекцию и перенаправляет страницу на "works/titleOfPost"
Я использую дружественное оформление пули, чтобы соединиться с моей коллекцией. Вот этот код.
Works = new Mongo.Collection('works');
Works.friendlySlugs(
{
slugFrom: 'jobTitle',
slugField: 'slug',
debug : true
}
);
Вот куда мне отправляет отправка формы, похоже, это работает, так как URL-адрес получается правильным.
Router.go('works', {slug: event.jobTitle});
Вот где я думаю, проблема в моем роутере.
Router.map( function () {
this.route("/works/:slug", {
name: 'works',
waitOn: function() {
return this.subscribe('works', this.params.slug);
},
data: function() {
return Works.findOne({
slug: this.params.slug
});
}
});
}
Это отладка в консоли.
friendlySlugs DEBUG: = Begin runSlug
todda00_friendly-slugs.js:314 friendlySlugs DEBUG: Options↓
todda00_friendly-slugs.js:315 Object
todda00_friendly-slugs.js:317 friendlySlugs DEBUG: Modifier= false
todda00_friendly-slugs.js:317 friendlySlugs DEBUG: Create= false
todda00_friendly-slugs.js:317 friendlySlugs DEBUG: Slugging From= lkfjsalkfjdakl
todda00_friendly-slugs.js:317 friendlySlugs DEBUG: SlugBase before reduction= lkfjsalkfjdakl
todda00_friendly-slugs.js:317 friendlySlugs DEBUG: SlugBase after reduction= lkfjsalkfjdakl
todda00_friendly-slugs.js:317 friendlySlugs DEBUG: Highest indexed base found= undefined
todda00_friendly-slugs.js:317 friendlySlugs DEBUG: finalSlug= lkfjsalkfjdakl
todda00_friendly-slugs.js:317 friendlySlugs DEBUG: = Set to update
todda00_friendly-slugs.js:314 friendlySlugs DEBUG: Final Doc↓
todda00_friendly-slugs.js:315 Objectauthor: "bob"clientName: "dflkasl;fkjasfklj"companyName: "ksldfjalkjfdkl;"friendlySlugs: ObjectheroImg: "/cfs/files/ImagesHero/x55bsAaYrAB6aJriC/Screen Shot 2015-09-11 at 11.13.02 AM.png?token=eyJhdXRoVG9rZW4iOiJsX0JueUFMQXFhOHJTSlIzZE9KU1MzM2x4dm92ZmprQ2lEY1JqWUlhNU1pIn0%3D"jobText: "<p>dfasfsafas</p>"jobTitle: "lkfjsalkfjdakl"logoImg: "/cfs/files/Images/eqjmnZtdzg6zEMm3v/acorn.gif?token=eyJhdXRoVG9rZW4iOiJsX0JueUFMQXFhOHJTSlIzZE9KU1MzM2x4dm92ZmprQ2lEY1JqWUlhNU1pIn0%3D"slug: "lkfjsalkfjdakl"submitted: Mon Sep 14 2015 15:15:36 GMT-0700 (PDT)userId: "es6YC98DdFvbrZGbW"__proto__: Object
Это моя коллекция данных
{
"_id": "TZnxLmmxcupEuW6o6",
"clientName": "dflkasl;fkjasfklj",
"companyName": "ksldfjalkjfdkl;",
"logoImg": "/cfs/files/Images/eqjmnZtdzg6zEMm3v/acorn.gif?token=eyJhdXRoVG9rZW4iOiJsX0JueUFMQXFhOHJTSlIzZE9KU1MzM2x4dm92ZmprQ2lEY1JqWUlhNU1pIn0%3D",
"jobTitle": "lkfjsalkfjdakl",
"jobText": "<p>dfasfsafas</p>",
"heroImg": "/cfs/files/ImagesHero/x55bsAaYrAB6aJriC/Screen Shot 2015-09-11 at 11.13.02 AM.png?token=eyJhdXRoVG9rZW4iOiJsX0JueUFMQXFhOHJTSlIzZE9KU1MzM2x4dm92ZmprQ2lEY1JqWUlhNU1pIn0%3D",
"userId": "es6YC98DdFvbrZGbW",
"author": "bob",
"submitted": "2015-09-14T22:15:36.655Z",
"friendlySlugs": {
"slug": {
"base": "lkfjsalkfjdakl",
"index": 0
}
},
"slug": "lkfjsalkfjdakl"
}
1 ответ
Вместо использования jobTitle в вызове Router.go, вы должны использовать слаг, вот так:
Router.go('works', {slug: event.slug});
Кроме того, я не вижу ваш метод публикации, поэтому убедитесь, что вы принимаете параметр slug и находите документ с {slug:slug}
вместо самого названия.