【发布时间】:2015-05-17 08:19:38
【问题描述】:
我在我的 Node-Express-Anuglar 应用程序中使用 Hogan 模板引擎。 因为我在 Hogan 模板中使用 Anguar,所以我更改了 Hogan 的分隔符:
app.js
app.locals.delimiters = '{% %}';
app.set('view engine', 'hjs');
因此我可以像这样显示视图参数(Angular 很常见):
index.hjs
<!DOCTYPE html>
<html data-ng-app="app">
<head>
<title>{% title %}</title>
</head>
<body ng-controller="TestController">
From Angular model: {{model.testProperty}}
我在渲染函数中传递参数:
index.js 在路由目录中:
router.get('/', function(req, res, next) {
res.render('index', { title: 'Example title' });
});
在这种情况下,一切正常,因此 {% title %} 解析为 Example title 和 {{model.testProperty}} 解析为来自我的控制器的正确值。
在 Angular 端添加路由时出现问题:
module.config(['$routeProvider', '$locationProvider',
function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
$routeProvider.
when('/', {
templateUrl: '../diary/diary.html',
controller: 'TestController'
}).
when('/promoted', {
templateUrl: '..diary/promoted-diary.html',
controller: 'PromotedController'
}).
otherwise({
redirectTo: '/'
});
}]
);
因为变量{% title %} 被渲染为{% title %}(所以它没有被评估)。整个 Angular 的东西,例如。 {{ model.testProperty }} 像以前一样工作,所以它被正确地解析为来自控制器的值。
【问题讨论】:
标签: javascript angularjs node.js express hogan.js