2016-02-17 58 views
0

我有一個應用,整個路由由角度應用處理。比如我有很多角路線,如下列:從角度應用切換到Express的模板

$routeProvider 
     .when("/users",{ controller: "userController", templateUrl: "partials/users.html" }) 

,並在後端應用程序我有

router.get('/partials/:name', function(req, res, next) {  
    var name = req.params.name; 
    res.render('admin/partials/' + name); 
}); 

這種設置也使用本地主機難看/#/黑客。我想要將所有路由切換到Express,並在此過程中擺脫此黑客攻擊。就我們需要修改的文件數量而言,我有哪些選項?

基本上我想要將整個呈現的HTML與從與API集成的特定端點的API路由生成的動態數據(可能使用諸如Jade的HTML預處理器)返回,並停止使用Angular來呈現模板,然後嵌入API數據。

回答

1

對於需要修改的文件數量而言,我有哪些選項?

很難決定不知道你的代碼和它的依賴關係。

但我建議仔細看看jade conditionals,jade includesjade extends。我使用快速應用程序中的玉石預處理器來準備玉石模板,並對該解決方案非常滿意。

如果您生成沒有任何動態內容的HTML頁面,請考慮使用快速靜態功能。

如果您必須對jades輸出做一些非常特殊的處理,您可以在存儲/傳送文件之前在回調中執行此操作。

甲剪斷:

jade.compile('./templates/jade/remotecontrol.jade', 
    {title:'Remotecontrol', 
    copt:customoptions, 
    key:project.key, 
    objects:JSON.stringify(project.objects), 
    buttons:{login:true}, 
    controls:{joystick:true}, 
    forms:{login:true}}, 
    {callback:storeTo, 
    storeTo:__dirname+'/projects/'+project.key+'/stk/index.html', 
    pretty:true}) 

對於像一個模板(請識別「包括../../../」作爲路徑必須是從模板相對的,不是該節點的應用程序)

doctype html 
html(lang="de") 
    head 
    title #{title} 
    meta(charset="UTF-8")  
    include ../../../templates/jade/favicon.jade 
    meta(name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no") 
    link(rel="stylesheet" type="text/css" href="styles/client.css") 

    script. 
     var objectsToInject=!{objects}; 
     var key='#{key}'; 

    ... 

    body 
    include ../../../templates/jade/loading.jade 
    div.bodycontainer() 
     button.beforebgr(name="fullscreen" id="fullscreen" class="fullscreen") Fullscreen 
     if controls.joystick 
     div.draggable(id="divjoystick" class="draggable ui-widget-content") 
      include ../../../templates/jade/joystickbase-svg.jade 
      include ../../../templates/jade/joystick-svg.jade 

     ... 

     - var scriptname="'libs/js/remotecontrol.js'" 
     include ../../../templates/jade/loadscript.jade