如何结合快速和有角度的路线

时间:2017-03-28 06:08:22

标签: javascript angularjs node.js express

我试图将Jade AngularJS与ExpressJS结合使用。我有一个app.js for express用Grunt运行服务器。从那个app.js我渲染home.jade,它指导我到主页。在主页里面,我有了angularJS。我在AngularJS目录中创建了另一个app.js.如何将路线组合在一起?

App.js(Express)

var config = require('./config/config');
var express = require('express');
var bodyParser = require('body-parser');
var cors = require('cors');
var http = require('http');

var app = express();

app.use(cors());
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());

var oneDay = 86400000;
app.use(express.static(config.root + '/public', { maxAge: oneDay }));

app.set('views', config.root + '/app/views');
app.set('view engine', 'jade');

app.get('/', function(req, res){
    res.render('home');
});
app.listen(config.port);

App.js(AngularJS)

var myApp = angular.module("app", []);

myApp.config(function ($routeProvider, $locationProvider) {
    $locationProvider.html5Mode(true).hashPrefix('!');

    $routeProvider
        .when('/haha', {
            title: '',
            templateUrl: '{DIR_TO_JADE_FILE}',
            controller: 'HomeController'
    })    
});

myApp.controller("AppController", function AppController($scope, $http, $location, $window, $rootScope) {
    alert("Initialize...");
    $scope.message = "HELLO";
});

HTML

doctype html
html(lang='en')
 head
  meta(charset='UTF-8')
  meta(name='viewport', content='width=device-width, minimum-scale=1.0, maximum-scale=1.0')
  link(rel='stylesheet', href='css/vendor/simple-line-icons.css')
  link(rel='stylesheet', href='css/vendor/tooltipster.css')
  link(rel='stylesheet', href='css/vendor/owl.carousel.css')
  link(rel='stylesheet', href='css/style.css')
  //- favicon
  link(rel='icon', href='favicon.ico')
  title Random | Home
 body(ng-controller="AppController")
  block content
  include content
  include angularJS

1 个答案:

答案 0 :(得分:3)

前端和后端路由的Thumb规则:

后端路由: 定义为获取/更新数据的路由。

前端路由: 根据页面定义的路由,应显示给用户。

因此,假设我们有两个页面,主页和个人资料页面

所以,前端路线将有两页

“/ home”正在加载主页 “/ profile”加载个人资料

现在在每个页面上,你需要在html页面中显示一些数据,为你制作路线:

“/ getHomePageData”路由返回一些新闻源(比方说) “/ getProfilePageData”路由返回一些用户相关信息

现在,在每个页面上,如果服务器路由调用成功,您需要在html中传递这些数据以向用户显示。

同意有异常/约定,例如使用jade模板发送已编译的页面(包含数据的页面)。