2014-03-03 50 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()'中? –