【问题标题】:Nodejs + angularjs + mysql : How to render query data to angularjs using route/viewNodejs + angularjs + mysql:如何使用路由/视图将查询数据渲染到 angularjs
【发布时间】:2014-09-21 07:48:26
【问题描述】:

我在我的路由中使用 mysql 选择查询,我正在尝试在视图中呈现数据。

我在检索数据并使用角度 ng-repeat 显示它时遇到了一些麻烦。我认为这与数据格式(json / array)有关。如果有人能在这方面给我一点启发,将不胜感激!

PS : 我正在使用 EJS 模板

Nodejs:

pool.getConnection(function(err, conn) {
    var db_result = [];
    query = conn.query('SELECT * FROM table');
    query.on('error', function(err){
        throw err;
    });
    query.on('result', function(row){
        db_result = row;
        //Maybe I need to use db_result.push(row) or db_result = JSON.stringify(row);
    });
    query.on('end', function(result){
        res.render('index', { db_data: db_result });    
    });
    conn.release();
});

AngularJS:

//Code inside MainCtrl
$scope.db_datas = <%=db_data%>;

//HTML code

<div ng-repeat="db_data in db_datas | orderBy:'id':true">
    <p>{{db_data.id}}</p>
</div>  

编辑:

nodejs 变量db_result 的值如下所示:

[ 
    {   id: 104,
        content: 'test',
        date: Sat Jul 26 2014 03:57:43 GMT+0200 (CEST) 
    },
    {   id: 105,
        content: 'test',
        date: Sat Jul 26 2014 03:57:43 GMT+0200 (CEST) 
    }
]

【问题讨论】:

  • 嗯,您提供的评论绝对正确 - 'db_result.push(row)' 是正确的。否则你继续覆盖变量,最后你只有最后一行。
  • 好的,谢谢。我仍然无法让它与角度一起工作,说missing [ after element list。我真的不知道需要传递什么类型的数据

标签: node.js angularjs view routes format


【解决方案1】:

首先这样做

<div ng-repeat="db_data in db_datas | orderBy: idFilter: true">
    <p>{{db_data.id}}</p>
</div>  

然后在MainCtrl中编写如下代码

 $scope.idFilter=function(db_data){
    $scope.Id = db_data.id;
    return $scope.Id;
 };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 2015-05-12
    相关资源
    最近更新 更多