angularjs – 在嵌套模型上使用populate从Angular.js到Sails.js和waterline的查询

前端之家收集整理的这篇文章主要介绍了angularjs – 在嵌套模型上使用populate从Angular.js到Sails.js和waterline的查询前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的Sails.js中,我有一个名为Invoices.js的模型,其结构如下:

module.exports = {

    tableName:'invoices',adapter: 'MysqL',autoPK:false,autoCreatedAt: true,autoUpdatedAt: true,attributes: {

    id: {type: 'integer',autoIncrement: true,primaryKey: true},doc_mod: {type:'string'},doc_n: {type:'integer'},createdAt: {type:'date'},updatedAt: {type:'date'},settled: {type:'integer'},invoice_line: {collection:'invoice_lines',via:'invoice'},customer: {model:'customers'},booking:{collection:'bookings',via:'invoice'}
  }
}

我想从Angular.js查询通过’姓名’或’姓氏’找到客户,在客户端我想出了这个:

.factory('PaymentsService',['$resource',function($resource){

        return{

            Query:function(cursor,sorting,name,surname){
                var allPayments = $resource('http://localhost:1337/invoices');
                return allPayments.query({populate:{'customers':{where:{or:[{name:{contains:name}},{surname:{contains:surname}}]}}},skip:cursor,limit:100,sort:sorting}).$promise;
            }
}

它似乎不能正常工作我总是得到这个不完整和正确的结果:

.....{
"customer": 1,"id": 4,"doc_mod": "receipt","doc_n": 3,"createdAt": "2015-05-11T17:07:40.000Z","updatedAt": "2015-05-11T17:07:40.000Z","settled": 0
},{
"customer": 1,"id": 5,"doc_n": 4,"createdAt": "2015-05-11T18:26:55.000Z","updatedAt": "2015-05-11T18:26:55.000Z","settled": 0
}.....

解决方法

您目前无法以这种方式查询子文档.您需要撤消查询,以便过滤客户,然后返回关联的发票.它可能不是你想要的100%,但是水线正在解决这个问题!

var allPayments = $resource('http://localhost:1337/customers');

allPayments.query({
  where:{or:[{name:{contains:name}},{surname:contains:surname}}]},populate:'invoices',sort:sorting
})
.$promise

猜你在找的Angularjs相关文章