我如何传递node.js服务器变量到我的angular/html视图
How do I pass node.js server variables into my angular/html view?
我有这个路由在我的app.js文件中启动服务器
app.get('/view/:item_id', function(req,res){
var A = 5;
res.render('view_item');
在我的view_item。html中:
<p>{{A}}</p>
我想让它显示变量值- 5。如果我使用一个模板引擎,如jade,这将是很容易的。我可以将服务器代码的第三行改为res.render({A:A},'view_item');
但我使用html作为我的模板引擎。到目前为止,我的研究告诉我,在angular中使用模板引擎通常不是一个好主意,总有一种方法可以使用angular内置的模板系统。我该怎么做呢?是否将其传递给$作用域并包含
<script>
$scope.A = {{A}};
</script>
我没有在任何地方看到这样做,所以我不认为这是一种方式。
这是一个两步的过程。
- 首先,您需要使用一个库(服务器库),如express在节点中设置适当的路由(REST服务)来响应您的请求:
//app = express();
app.get('/api/:paramID1/:paramID2',function(req, res){
return res.json({ A: 5 });
});
在客户端,您需要一个ajax调用来调用服务,如:
$http.get( "/api/1/abc").success(function( data ) { $scope.A= data; //from your sample; alert( "Load was performed. " + data ); });
请注意,当使用REST时,有不同类型的"方法"可以根据您的需要调用,例如POST, DELETE, UPDATE或刚刚在示例中提到的GET。
如果你正在使用Angular,你可能应该构建一个单页应用——这适用于大多数现代前端框架。对于spa,您从一个基本的html文件(可能是index.html
)开始。然后,您的框架处理其他所有内容的呈现。你的服务器也可以发出模板,但它自己永远不会呈现任何东西。
app.get('/view/:item_id', function(req,res){
不应该呈现任何内容或返回HTML。相反,您应该返回前端将用于呈现的数据——最好是JSON。
res.json({A: 5});
在Angular中,你可以这样做
$http.get("/view/1").success(function (data) {
ctrl.A = data.A;
});
你的html/模板应该有类似
的内容<div ng-controller="ctrl as ctrl">
<div>{{ctrl.A}}</div>
一旦$http.get
完成,ctrl.A
将被填充。
相关文章:
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- 如何在angular js中使用指令.不适用于我的情况,为什么
- 为什么不是'我的函数在解析云代码中工作吗?当我在Angular和Express中测试时,它是有效的
- Angular没有根据模型更新我的选择元素
- angular如何在我的情况下设置服务
- $scope$Angular中的手表;我不在爱奥尼亚/科尔多瓦工作
- 我怎么能在Angular JS中等待,直到我的web服务返回
- 我如何访问在 Angular JS 的 .then() 中定义的$scope数组
- 无权访问我的控制器 Angular 中的属性.js 1.3
- 将我的网站转换为使用 Angular JS
- Angular资源对我的代码不起作用
- Angular 2-我如何使我的index.html文件的标题和关键字和描述的元标签是动态的
- 对于多个视图,当URL更改时,我的子模板不会在Angular UI中加载
- 我怎样才能显示我的子数组解唱 Angular js
- Angular没有't在http请求后更新我的对象
- I'我正在努力学习Angular——为什么不;t我的对象没有用ng repeat出现
- 我的angular应用程序不起作用
- 我的Angular ui模态找不到模板
- 我需要一个使用Angular.js的输入框,它的值取决于一个公式
- 我的Angular表达式不会从数组中获取数据