第一
exports.render = function(req,res){
res.render('index', {
title: 'welcome',
username : req.user ? req.user :''
});
};
我想导出对象 req.user
以使用
h2 Hello #{username.username}
h2 Hello #{username}
在Jade中我可以使用它
div(ng-app='IndexController')
{{ #{username} | getUserData }}
但如果我想让它变成棱角分明,则无法使用
mainAppModule.filter('getUserData', function () {
return function (name) {
if (name)
console.log(name.username + "xxxxxxxxxxxxxxxxxxxxxxxxqqqqqqqqqq");
return 'Hellox, ';
};
});
我该怎么办?如何在将来使用req.user
。如果还有其他方法可以让对象在角度使用,请告诉我。
非常感谢。
答案 0 :(得分:1)
function MyCtrl($scope) {
$scope.req = {'user':'scope user'};
this.req1 = {'user':'alias user'} ;
}

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="">
<div ng-controller="MyCtrl as myCont">
{{req.user}}
<br/>
{{myCont.req1.user}}
</div>
</div>
&#13;
我不确定你面临的问题。您只需使用$ scope或controller别名来访问视图中的任何变量。
按别名
<div ng-controller="MainController as main">
{{main.name.userName}}
</div>
按$ scope
<div ng-controller="MainController">
{{name.userName}}
</div>
答案 1 :(得分:0)
似乎您需要将请求对象传递给角度代码。 我可以建议尝试制作一个模块,作为玉器渲染对象的模型,如下所示:
<强> index.jade 强>
div(ng-controller="myController as ctrl")
h2 Title: {{ ctrl.title | myFilter }}
h2 Username: {{ ctrl.username | myFilter }}
script.
angular.module('jadeData',[])
.factory('jadeDataFactory',function(){
//model service to set objects retireved from jade
return {
'title': "#{title}",
'username': "#{username}"
};
});
script(src="/js/app.module.js")
完成后,您可以访问主模块控制器中的服务模型
<强> app.module.js 强>
angular.module("myApp",['jadeData'])
.controller("myController",function(jadeDataFactory){
var that = this;
that.title = jadeDataFactory.title;
that.username = jadeDataFactory.username;
})
.filter("myFilter",function(){
return function(v){
if(v)
console.log('Inside filter value: ',v);
return v+' Modified';
}
});
这样您就可以将jadeDataFactory注入任何所需的控制器/服务
解释:实际上Jade是在服务器端呈现的,如果你写{{ #{username} | getUserData }}
,那么渲染器无法正确获取它,更好的方法是将它存储在服务模型中并访问它在所需的控制器中。