如何将node.js服务器变量传递到我的angular/html视图中?

use*_*514 12 javascript template-engine node.js angularjs

我在启动服务器的app.js文件中有这条路线

app.get('/view/:item_id', function(req,res){
    var A = 5;
    res.render('view_item');
Run Code Online (Sandbox Code Playgroud)

我在view_item.html中有这个:

<p>{{A}}</p>
Run Code Online (Sandbox Code Playgroud)

我希望它显示变量值 - 5.如果我使用的是模板引擎,如jade,那将很容易.我可以将我的服务器代码的第三行更改为res.render({A:A},'view_item');

但我使用html作为我的模板引擎.到目前为止,我的研究告诉我,使用带有角度的模板引擎通常是一个坏主意,并且始终有一种方法可以使用angular的内置模板系统来完成它.那我该怎么做?我以某种方式将它传递给$ scope并包含类似

<script>
    $scope.A = {{A}};
</script>
Run Code Online (Sandbox Code Playgroud)

我没有在任何地方看到这样做,所以我认为它没有办法.

Dal*_*rzo 11

这是一个两步过程.

  1. 首先,你需要使用一个库(服务器库),如快递节点设置适当的路线(REST服务),以回应您的要求:

服务器端

//app = express();
    app.get('/api/:paramID1/:paramID2',function(req, res){
        return res.json({ A: 5 });
    });
Run Code Online (Sandbox Code Playgroud)
  1. 客户端,您需要ajax调用来调用服务,如:

    $http.get( "/api/1/abc").success(function( data ) {
      $scope.A= data; //from your sample;
      alert( "Load was performed. " + data );
    });
    
    Run Code Online (Sandbox Code Playgroud)

请注意,使用REST时,可以根据需要调用不同类型的"方法",例如POST,DELETE,UPDATE或示例GET中刚刚提到的方法.