2016-09-07 4 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, 
    }); 
}; 

причина, почему i'am делает это потому, что в чтобы изменить метатеги по этой странице, то есть мне нужно установить переменные в представлении до того, как страница отобразится, которая поступает с другого контроллера.

Мой вопрос в том, как я могу получить доступ к переменным в файле 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> 

как gettitle, который устанавливается из метода getAnnouncement OfferController.

Это работает, если я установить другой файл 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');