2016-09-07 76 views
0

我有我的所有視圖頁面模板一套我加載使用角JS模板

app.route('/*').get(core.renderIndex); 

這裏和renderIndex函數看起來像

exports.renderIndex = function (req, res) { 
    res.render('modules/core/server/views/index', { 
    user: req.user || null 
    }); 
}; 

現在,當我的路線已經公佈它,我呈現不同的模板而不是index.server.view.html

app.route('/:shopId/:locationId/announcement/*').get(core.renderAnnouncement); 

exports.renderAnnouncement = function (req, res) {  
    res.render('modules/core/server/views/announcement', { 
    user: req.user || null, 
    }); 
}; 

我之所以這樣做是因爲在eed在這個頁面上改變meta標籤,即我需要在來自另一個控制器的頁面呈現之前在視圖上設置變量。

我的問題是我如何訪問server.view.html文件中的變量?

<!DOCTYPE html> 
<html lang="en" ng-controller="OfferController" ng-init="getAnnouncement()"> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"> 
    <base href="/"> 
    <title>{{ gettitle }}</title> 

等,其是從OfferController的getAnnouncement方法設置的getTitle。

這工作,如果我設置不同的announcement.client.view.html文件,並在服務器上的文件擴展它

回答

0

萬一有人被卡住和需要幫助這裏是我如何做這個

app.get('/:shopId/:locationId/announcement/*',function(req,res,next){ 
    async.waterfall([ 
     function (done) { 
     var resultsObj = ''; 
     var httpTransport = 'http://'; 
     if (config.secure && config.secure.ssl === true) { 
      httpTransport = 'https://'; 
     } 
     var url = httpTransport + req.headers.host+'/api/offer/getbyid/'+req.params[0]; 
     request.get(url, function (err, res, body) { 
      resultsObj = JSON.parse(body); 
      done(err, resultsObj); 
     }); 


     }, 
     function (resultsObj, done) { 
     var httpTransport = 'http://'; 

     if (config.secure && config.secure.ssl === true) { 
      httpTransport = 'https://'; 
     } 
     var url = httpTransport + req.headers.host+'/api/shops/'+req.params.shopId+'/'+req.params.locationId; 
     request.get(url, function (err, res, body) { 
      var resultsObjNew='';  
      resultsObjNew = JSON.parse(body); 
      done(err, resultsObjNew,resultsObj); 
     }); 

     }, 
     function (resultsObjNew,resultsObj, done) { 

     res.render('modules/core/server/views/announcement', { 
      title: resultsObj[0].title, 
      imageUrl : resultsObj[0].imageURL, 
      desc : resultsObj[0].desc, 
      link:resultsObj[0].redirectLink, 
      logoLink: resultsObjNew.logoLink, 
      backgroundImage:resultsObjNew.backgroundImage  
     }); 
     }  
    ]); 
    }); 

其中

var request = require('request'); 
    var async = require('async'); 
    var path = require('path');