angular.js - Angular路由和express路由的組合使用問(wèn)題
問(wèn)題描述
想用Angular的路由里面監(jiān)聽(tīng)url變化來(lái)獲取不同的ejs模版,但是當(dāng)url一變化express的路由也會(huì)作出反應(yīng),想問(wèn)下該怎么做才能在url變成/phone時(shí)不進(jìn)入express的路由。
public/javascript/app.js
angular.module(’ngApp’,[]).config([’$routeProvider’,function($routeProvider) { $routeProvider.when(’/’, {templateUrl: ’pages/index’,controller: ’PhoneListCtrl’}).when((’/phone’, {templateUrl: ’pages/phone-detail’,controller: ’PhoneDetCtrl’})).otherwise({redirectTo: ’/’})}])
routes/index.js
var express = reqsuire(’express’);var router = express.Router();router.get(’/pages/phone-detail’, function(req, res, next) { res.render('phone-detail', {title: ’艾希’});})module.exports = router;
下面圖片是結(jié)構(gòu),模版都在view/pages下
問(wèn)題解答
回答1:兩個(gè)問(wèn)題1.angularjs和ejs怎么想都感覺(jué)重復(fù)了,用angularjs的話就可以使用html+ajax方式,用ejs就可以使用ejs+ajax,說(shuō)起來(lái)不用兩個(gè)都用。2.按說(shuō)兩個(gè)都用,angularjs的route設(shè)置,加載的頁(yè)面是將子頁(yè)面異步加載到父頁(yè)面的<ng-view>中的,而ejs是整個(gè)瀏覽器窗口的渲染,相當(dāng)于跳頁(yè)面了,確實(shí)會(huì)有沖突。
我暫時(shí)能想到的解決方法是,主頁(yè)面用ejs跳轉(zhuǎn),子頁(yè)面采用ng-route進(jìn)行異步加載,但是缺點(diǎn)就是在ejs和angular的route設(shè)置中不能設(shè)置otherwise。
相關(guān)文章:
1. css3 - 沒(méi)明白盒子的height隨width的變化這段css是怎樣實(shí)現(xiàn)的?2. java - 根據(jù)月份查詢多個(gè)表里的內(nèi)容怎么實(shí)現(xiàn)好?3. python3.x - c++調(diào)用python34. javascript - 在 model里定義的 引用表模型時(shí),model為undefined。5. php工具中的mysql還是5.1以下的,請(qǐng)問(wèn)如何才能升級(jí)到5.1以上?6. css3 - 這個(gè)右下角折角用css怎么畫出來(lái)?7. atom開(kāi)始輸入!然后按tab只有空格出現(xiàn)沒(méi)有html格式出現(xiàn)8. javascript - 移動(dòng)端自適應(yīng)9. android - 課程表點(diǎn)擊后浮動(dòng)后邊透明可以左右滑動(dòng)的界面是什么?10. apache - 想把之前寫的單機(jī)版 windows 軟件改成網(wǎng)絡(luò)版,讓每個(gè)用戶可以注冊(cè)并登錄。類似 qq 的登陸,怎么架設(shè)服務(wù)器呢?
