2015-04-06 5 views
0

Я пытаюсь написать свое первое модульное приложение, используя Ampersand.js, но у меня есть несколько проблем! Надеясь кто-то может мне точку в правильном направлении ...Маршрутизация модульного приложения с Ampersand.js?

Ok, так что я настроен Watchify и Browserify в мой HTML файл, чтобы создать bundled.js файл, который будет перекомпилировать каждый раз, когда я внести изменения. Затем я хотел бы добавить амперсанд модульно ampersand-router (установлен в терминале как npm install --save ampersand-router указать все маршруты приложения Я хотел бы, чтобы обрабатывать и перенаправлять пользователей, если они попали на недоступный маршрут.

Проблема его не перенаправлять мой # маршруты, и я не могу понять, почему! Поскольку у меня нет сервера (или нужен один для этого проекта), я пытаюсь использовать маршрутизацию на основе #, и мне бы хотелось, чтобы он обрабатывал три маршрута, пустой маршрут (моя стартовая точка), gif/id маршрут Л catch маршрут, который будет перенаправлять к исходной точке

Так что моя файловая структура содержит router.js: -.

'use strict'; 
var AmpersandRouter = require('ampersand-router'); 
module.exports = AmpersandRouter.extend({ 
routes:{ 
    '': 'gifs', //empty 
    'gif/:id': 'gif', 
    'catch': 'catch' //catch and redirect 
}, 
gifs: function(){ 
    console.log('gifs page'); 
}, 

gif: function(id){ 
    console.log('gif page', id); 
}, 
'catch': function(){ 
    this.redirectTo(''); 
} 

});

и app.js файл: -

var Router = require('./router.js'); 
window.app = { 
init: function() { 
    console.log('hello world'); 
    this.router = new Router(); 
    this.router.history.start(); 
} 
}; 
window.app.init(); 

и это все собрались <script src = "bundled.js"></script> в моей index.html и package.json код ниже

"scripts": { 
"start": "watchify js/app.js -o bundled.js", 
"build": "browserify js/app.js -o bundled.js" 

Любая помощь будет очень признателен! Спасибо всем!

ответ

-2

Вы пытались использовать «npm start» в своем базовом каталоге?

Я не помещал Ampersand.js в файл HTML, но, похоже, работает с чистым Javascript.

0

pushState Попробуйте отключить

this.router.history.start({pushState: false}); 

Когда включен # -fallback не будет удар в.

Смежные вопросы