我试图将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
答案 0 :(得分:3)
前端和后端路由的Thumb规则:
后端路由: 定义为获取/更新数据的路由。
前端路由: 根据页面定义的路由,应显示给用户。
因此,假设我们有两个页面,主页和个人资料页面
所以,前端路线将有两页
“/ home”正在加载主页 “/ profile”加载个人资料
现在在每个页面上,你需要在html页面中显示一些数据,为你制作路线:
“/ getHomePageData”路由返回一些新闻源(比方说) “/ getProfilePageData”路由返回一些用户相关信息
现在,在每个页面上,如果服务器路由调用成功,您需要在html中传递这些数据以向用户显示。
同意有异常/约定,例如使用jade模板发送已编译的页面(包含数据的页面)。