Nodejs + angularjs + mysql:如何使用路径/视图将查询数据呈现给angularjs

时间:2014-07-29 19:52:20

标签: node.js angularjs view routes format

我在我的路线中使用了mysql select查询,而我正在尝试在视图中渲染数据。

我在检索数据时遇到了一些问题,并使用角度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) 
    }
]

1 个答案:

答案 0 :(得分:0)

首先这样做

<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;
 };