Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以角度访问全局变量_Javascript_Express_Angularjs - Fatal编程技术网

Javascript 以角度访问全局变量

Javascript 以角度访问全局变量,javascript,express,angularjs,Javascript,Express,Angularjs,我使用的是节点表达式和角度表达式。在我的express app.js中,我声明了一个路由并将一个变量传递给呈现的页面,如下所示 app.get('/test' function(req, res){ res.render('test', { user: 12345 }); }); <div ng-controller='testCtrl'> <!--some markup here--> </div> function testCtrl($scope)

我使用的是节点表达式和角度表达式。在我的express app.js中,我声明了一个路由并将一个变量传递给呈现的页面,如下所示

app.get('/test' function(req, res){
  res.render('test', { user: 12345 });
});
<div ng-controller='testCtrl'> <!--some markup here--> </div>
function testCtrl($scope) {
    /*...some code here...*/
}
在我的“测试”视图中,我使用ng控制器将容器链接到angular,如下所示

app.get('/test' function(req, res){
  res.render('test', { user: 12345 });
});
<div ng-controller='testCtrl'> <!--some markup here--> </div>
function testCtrl($scope) {
    /*...some code here...*/
}

如何访问控制器函数中从express传入视图的“user”变量?

因为您使用模板呈现视图,所以有两种不同的执行方式:(1)您的服务器呈现页面(使用
user
var),然后(2)浏览器运行AngularJS。所以不能将变量从(1)传递到(2)

但是,有一个名为的指令将在引导过程中解析表达式。如果在ExpressJS中使用Jade模板,可以执行以下操作:

div(ng init='user=“”+user+”)
这将使HTML呈现如下所示:


因此,当AngularJS引导页面的这一部分(或这一部分或模板)时,
user
将成为一个范围变量,其值来自服务器


我没有测试玉代码,我也不是玉专家,但这应该会让你走上正轨。如果您使用的是不同的模板引擎,请告诉我,我将修改答案。

Jade变量可以通过在
ng init

首先,必须对用户进行字符串化,然后使用
{value}进行插值
div(ng init='angularUser={JSON.stringify(user)}')


在这种情况下,
user
变量是一个Jade变量

谢谢Josh,这确实是一个很大的帮助,+1帮助我找出了困惑的根源:)请阅读以下内容:帮助您编写答案并格式化答案。