我今天開始爲電子商務網站編寫Meteor應用程序。這是我的basic.js
文件中的一些代碼。在Meteor重新初始化代碼
Router.route("/shop", function() {
this.layout("shop");
this.render("catalog");
});
當/shop
呈現的shop.js
裏面的一些代碼被執行:
Template.shop.rendered = function() {
if ($("figure").hasClass("selected")) {
var
productSelected = $("figure.selected"),
productPrice = productSelected.data("price"),
productTitle = productSelected.data("product"),
productLocation = productSelected.find("a").attr("href");
$(".product-title").html(productTitle);
$(".product-cost").html(productPrice);
$(".content__info__title--overview").find("a").attr("href", productLocation);
}
// Slideshow
var galleryItems = $(".content").children("section");
galleryItems.each(function() {
var container = $(this);
// Update slider when user clicks on the preview images
container.on("click", ".move-down, .move-up", function (event) {
event.preventDefault();
if ($(this).hasClass("move-down")) {
nextSlide(container);
} else {
prevSlide(container);
}
if ($(this).hasClass("selected")) {
var
productPrice = $(this).data("price"),
productTitle = $(this).data("product");
$(".product-title").html(productTitle);
$(".product-cost").html(productPrice);
}
});
});
// Next Slide
function nextSlide(container, n) {
var visibleSlide = container.find("figure.selected");
if (typeof n === "undefined") {
n = visibleSlide.index() + 1;
}
$("figure.selected").removeClass("selected");
$(".content__products figure").eq(n).addClass("selected").removeClass("move-down").prevAll().removeClass("move-down move-up").addClass("hide-up").end().prev().removeClass("hide-up").addClass("move-up").end().next().addClass("move-down");
}
// Previous Slide
function prevSlide(container, n) {
var visibleSlide = container.find("figure.selected");
if (typeof n === "undefined") {
n = visibleSlide.index() - 1;
}
$("figure.selected").removeClass("selected");
$(".content__products figure").eq(n).addClass("selected").removeClass("move-up hide-up").nextAll().removeClass("hide-up move-down move-up").end().next().addClass("move-down").end().prev().removeClass("hide-up").addClass("move-up");
}
});
現在,這個工作完全正常,當應用程序加載,但是當我訪問了不同的路線,回來時, shop.js
中的代碼均無效。我不確定我是否做錯了什麼,但我會喜歡一些指針。
如果將「Template.shop.rendered」更改爲「Template.catalog.rendered」,會發生什麼情況?你也可以在Meteor'shell meteor --version'上運行這個工作。 – Ethaan 2015-03-25 02:56:13
將'shop'改成'catalog'工作!是。謝謝@Ethaan!我正在運行Meteor 1.0.3.2和Meteorite 0.9.3版本。 – 2015-03-25 03:02:54