2016-09-07 80 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');