sup*_*her 2 javascript express angularjs
我正在使用node express和angular.在我的express app.js中,我声明了一个路由并将一个变量传递给渲染页面,就像这样......
app.get('/test' function(req, res){
res.render('test', { user: 12345 });
});
Run Code Online (Sandbox Code Playgroud)
在我的"测试"视图中,我使用ng-controller将容器链接到angular,就像这样......
<div ng-controller='testCtrl'> <!--some markup here--> </div>
Run Code Online (Sandbox Code Playgroud)
在我的angular controllers.js中,我为我的视图声明了一个函数,就像这样......
function testCtrl($scope) {
/*...some code here...*/
}
Run Code Online (Sandbox Code Playgroud)
如何在我的控制器函数中访问从express传递到视图的'user'变量?
因为您使用模板来呈现视图,所以有两种不同的执行:(1)您的服务器正在呈现页面(使用uservar),然后(2)浏览器运行AngularJS.所以你不能将变量从(1)传递给(2).
但是,有一个指令ngInit会在bootstrap期间解析表达式.如果你在ExpressJS中使用Jade模板,你可以这样做:
div(ng-init='user = "'+user+'"')
Run Code Online (Sandbox Code Playgroud)
哪个会像这样渲染HTML:
<div ng-init="user = 'whatever-server-sent'"></div>
Run Code Online (Sandbox Code Playgroud)
因此,当AngularJS引导页面的这一部分(或此部分或模板)时,user将成为带有服务器值的范围变量.
我没有测试Jade代码而且我不是Jade专家,但这应该让你走上正轨.如果你正在使用不同的模板引擎,请告诉我,我会修改答案.
| 归档时间: |
|
| 查看次数: |
1838 次 |
| 最近记录: |