将服务器端数据传递给Angular
Pass server-side data into Angular
我目前试图在我的MEAN应用程序中显示登录用户的名称。我正在使用EJS模板引擎,我能够通过在我的标记中放置<%- user.username %>
来显示用户名。这样做的问题是,我真的不想把angular和嵌入式脚本混合在同一个文件中,我想把服务器端数据传递给angular。我尝试过ng-init,但是我没有任何成功。
我假设你使用的是ExpressJS 4,它在版本3中会有一点不同,但是两个版本的方法是相同的:
节点/服务器端
var express = require('express');
var bodyParser = require('body-parser');
var schema = require("./schemas");
var app = express();
var router = express.Router();
router.get('api/account', function(req, res){
res.json({ "login": req.session.user.login }); /*access the session account not sure if this matches your login location you will adapt it to your own*/
});
客户端角/
然后从控制器或服务中调用url api/account
,并使用GET请求来接收JSON,如:
$http.get("/api/account").then(function(data){ console.log(data); });
那么你可以这样做:
$scope.login = data.login;
和html
{{login}}
根据我对Angular的理解,它不鼓励在HTML代码中设置服务器端模板化的值。考虑设置一个提供数据的JSON服务,并通过JSON获取数据。在Angular教程的末尾有一个例子可以让你更清楚地理解这个问题。
我做了完全相同的事情,并混合EJS来嵌入诸如服务器信息之类的东西(从客户机启动套接字连接)。如果你想保持这种纯粹的客户端,你需要让AngularJS使用service/factory获取服务器端数据——然后影响依赖于这些数据的任何视图。
ng-init只适用于"Angular"作用域内的东西。
相关文章:
- 如何使用skip参数使用angular ui引导进行服务器端分页
- Webpack开发服务器和React服务器端渲染
- 无法从Angular访问服务器端控制器
- 如何使用angular js在表单上显示服务器端验证错误消息
- 使用 Angular 从服务器端生成的下拉列表中获取选择属性值
- 是否可以在 Angular JS(在旧版本中即 2.0 之前的版本)中进行服务器端渲染
- Angular.js和服务器端搜索-如何操作,最佳实践
- 我们可以使用Angular 2'取代服务器模板引擎的服务器端预渲染
- ExpressJS和Angular-'留下'应用程序进行服务器端身份验证
- angular服务器端验证,如何从对象引用中找到表单元素
- Angular:从服务器端传递一个默认值
- 无法从服务器端创建的angular js中获取cookie
- Node / Express / Angular服务器端外部API请求
- Angular过滤器服务器端生成选择(下拉列表)
- 将服务器端数据传递给Angular
- Express中的服务器端验证与单页Angular应用程序兼容
- Angular数据表不允许用服务器端处理对列进行排序
- 如何使用angular ui引导程序在angular js中实现服务器端分页
- Angular js服务器端过滤器和分页
- 从Angular客户端发送文件和附加参数,并在服务器端处理它们的最佳方式