Trong ứng dụng Meteor của tôi, bộ định tuyến Backbone chỉ hoạt động khi người dùng đăng nhập (thông qua gói tài khoản cơ sở). Nó thật kì lạ. Router này hoạt động tốt. Các chức năng showSaying()
không được gọi là ở tất cả khi người dùng không đăng nhập.Ứng dụng Meteor - Bộ định tuyến đường trục không được gọi là
Dưới đây là mã số trong client.js
trong thư mục khách hàng. Tôi có cần phải làm điều gì đó với phiên hoặc tự động xuất bản không?
AphorismView = Backbone.View.extend({
el: "#aphorism-item",
initialize: function(){
_.bindAll(this, "render");
this.render();
},
render: function() {
this.$el.append("<p style='height:600px; background-color:blue;'>hi</p>");
}
});
// Creates a route to view the selected aphorism
var Aphorism = Backbone.Router.extend({
routes: {
"saying/:id": "showSaying"
},
showSaying: function (id) {
var aphorism_view = new AphorismView();
alert('Saying id ' + id + '.');
}
});
//establishes the router
appRouter = new Aphorism;
//Sets up backbone
Meteor.startup(function() {
filepicker.setKey("AerIOvsmAQRGaNdEv0judz");
filepicker.constructWidget(document.getElementById('attachment'));
Backbone.history.start({pushState: true});
});
Tôi nghi ngờ việc này phải làm với tốc độ/thứ tự tải và khi đăng nhập, tải sẽ lâu hơn, dẫn đến appRouter sẵn sàng đúng giờ. Thử đặt khai báo appRouter bên trong Meteor.startup. – Rahul
đã cố gắng Rahul này - đã không làm việc – squeezemylime
Tôi chưa làm việc trên Win8 Metro Apps, vì vậy tôi không biết nếu có một bàn điều khiển phát triển có sẵn như trong trình duyệt. Nếu có, tôi sẽ gọi 'appRouter = new Aphorism;' ngay trước 'Backbone.history.start ({pushState: true});' và gán appRoute cho một biến toàn cục để xem nó có được khởi tạo hay không. – wowpatrick