2014-03-03 80 views
-1

試圖建立與和的NodeJS骨幹的應用程序。
直到現在我正在運行具有快速路由的節點js服務器。這些簡單的nodejs路由只是將數據發送回Backbone模型。
我通過直接向瀏覽器打開html文件並定義模型中的節點js url來運行骨幹應用程序。
現在,當我嘗試在應用程序中實現Backbone Router時,問題就出現了。如果我直接打開html文件,它將無法工作。
問題是我將如何將骨幹應用程序部署到節點服務器?
目錄結構:部署骨幹應用到節點JS服務器

app 
--index.html 
--view 
----appView.js 
--model 
----appModel.js 
--server 
----server.js 
--controller 
----router.js 

appView.js

var LoginForm = Backbone.View.extend({ 
    template:_.template('<input type="text" id="email" name="email" />'+ 
         '<input type="password" id="password" name="password" />'+ 
         '<input type="button" id="login" value="Login"/>'), 
    events: { 
     'click #login':'goIn' 
    }, 
    initialize: function() { 
     this.model.on('change', this.render, this); 
    }, 
    goIn: function() { 
     console.log(this.$('#password').val()); 
     this.model.set({"email":this.$('#email').val(), "password":this.$('#password').val()}); 
     this.model.goIn(); 
     this.render(); 
    }, 
    render: function() { 
     var attributes = this.model.toJSON(); 
     this.$el.html(this.template(attributes)); 
    } 
}); 

型號

var LoginFormModel = Backbone.Model.extend({ 
     defaults: { 
     email:"", 
     password:"" 
     }, 
     goIn: function(req, resp) { 
     console.log('hey whats up?'+JSON.stringify(this)); 
     //this.save(); 
     } 
    }); 

    var loginModel = new LoginFormModel(); 

節點服務器

var http = require('http'), 
    express = require('express'); 
app.get('/', function(req, res){ 
    res.send('Hello App'); 
}); 

回答

0

你將不得不使用navigate功能:

var Router = Backbone.Router.extend({ 
    routes : { 
     "": "home", // will be 
     "login" : "login" 
    }, 

    home: function() { 
     // your home page 
    } 

    login: function() { 
     var loginModel = new LoginModel(); 
     var loginView = new LoginView({model: loginModel}); 
     loginModel.fetch(); 
    } 
}) 

new Router(); 
Backbone.history.start(); 

,當你想要去到登錄頁面無論你在哪裏:

Backbone.history.navigate('login', { trigger: true }); 
+0

在這種情況下,它會去到View的'goIn()'中? –