Constructor
new Songo(entityopt)
Properties:
Name | Type | Description |
---|---|---|
query |
object.<string, (string|Array.<string>)> | 全部是以key-value的形式,不能有任何形式的嵌套 |
sort |
Array.<string> | 字符串数组,按照顺序描述排序 |
meta |
Object | 可选字段[limit,page,skip]筛选对象,接受数字 |
string |
string | 获取转换的url字符串 |
Query |
Query | 内部的Query对象 |
Sort |
Sort | 内部的Sort对象 |
Meta |
Meta | 内部的Meta对象 |
Example
new Songo({
query:{
$eq$status:1,
$gt$money:100
},
sort:['created'],
meta:{
limit:10,
page:0,
skip:0
}
})
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
entity |
Object |
<optional> |
object.<>
|
实例化Songo类的参数,包含3个字段:[query,sort,meta] |
Members
(readonly) string
获取转换的url字符串.
获取转换的url字符串
Methods
clearSort() → {Songo}
清空排序队列.
清空排序队列
Example
let songo = new Songo({sort:['-create']});
songo.clearSort();
Returns:
- Type
- Songo
fromParams(paramsObject) → {Songo}
将一个params对象,转化为实例.
将一个params对象,转化为实例
Example
let songo = new Songo({});
songo.fromParams({
limit:10,
page:20
})
Parameters:
Name | Type | Description |
---|---|---|
paramsObject |
Params.<string, (number|string)> | 类似angular的ui-router中的$stateParams,url的query转化为plainObject |
Returns:
- Type
- Songo
indexSort(sortKey) → {number}
索引一个sortKey.
索引一个sortKey
Example
let songo = new Songo({sort:['-create']});
songo.indexSort('created'); // 0
Parameters:
Name | Type | Description |
---|---|---|
sortKey |
string | 排序key,例如"+created","-created";默认+可以不填 |
Returns:
- Type
- number
onlySort(sortKey) → {Songo}
仅仅按照一个key排序.
仅仅按照一个key排序
Example
let songo = new Songo({sort:['-create']});
songo.onlySort('-money');
console.log(songo.sort); // ['-money']
Parameters:
Name | Type | Description |
---|---|---|
sortKey |
Returns:
- Type
- Songo
popSort() → {Songo}
删除队列的最后一个,,类似Array.prototype.pop,但是不会返回被删除的对象.
删除队列的最后一个,,类似Array.prototype.pop,但是不会返回被删除的对象
Example
let songo = new Songo({sort:['money','level','created']});
songo.popSort(); // songo.sort >> ['money','level']
songo.popSort(); // songo.sort >> ['money']
songo.popSort(); // songo.sort >> []
Returns:
- Type
- Songo
pushSort(sortKey) → {Songo}
在队列最后一个添加sortKey,类似Array.prototype.push.
在队列最后一个添加sortKey,类似Array.prototype.push
Example
let songo = new Songo({sort:['created']});
songo.pushSort('level'); // songo.sort >> ['created','level']
songo.pushSort('money'); // songo.sort >> ['created','level','money']
songo.pushSort('level'); // songo.sort >> ['created','money','level']
Parameters:
Name | Type | Description |
---|---|---|
sortKey |
string | 排序key,例如"+created","-created";默认+可以不填 |
Returns:
- Type
- Songo
removeSort(sortKey) → {Songo}
删除其中的某个sortKey.
删除其中的某个sortKey
Example
let songo = new Songo({sort:['money','level','created']});
songo.removeSort('created'); // songo.sort >> ['money','level']
songo.removeSort('money'); // songo.sort >> ['level']
songo.removeSort('-level'); // songo.sort >> ['level']
Parameters:
Name | Type | Description |
---|---|---|
sortKey |
string | 排序key,例如"+created","-created";默认+可以不填 |
Returns:
- Type
- Songo
setSort(sortKey) → {Songo}
添加一个sort.
添加一个sort
Example
let songo = new Songo({sort:['-create']});
songo.setSort('created'); // songo.sort >> ['created']
songo.setSort('-money'); // songo.sort >> ['-money','created']
songo.setSort('level'); // songo.sort >> ['level','-money','created']
songo.setSort('-created'); // songo.sort >> ['created','level','-money']
Parameters:
Name | Type | Description |
---|---|---|
sortKey |
string | 排序key,例如"+created","-created";默认+可以不填 |
Returns:
- Type
- Songo
shiftSort() → {Songo}
除队列的第一个,类似Array.prototype.shift,但是不会返回被删除的对象.
除队列的第一个,类似Array.prototype.shift,但是不会返回被删除的对象
Example
let songo = new Songo({sort:['money','level','created']});
songo.shiftSort(); // songo.sort >> ['level','created']
songo.shiftSort(); // songo.sort >> ['created']
songo.shiftSort(); // songo.sort >> []
Returns:
- Type
- Songo
toParams() → {Params}
转换成适合在url上防止的对象.
转换成适合在url上防止的对象
Example
let songo = new Songo({
meta:{
limit:10,
page:0
}
});
songo.toParams() // ?_limit=10&_page=0
Returns:
- Type
- Params
toQuery() → {string}
toString方法的别名.
toString方法的别名
Example
let songo = new Songo();
songo.toQuery()
Returns:
- Type
- string
toString() → {string}
转换成最终的url字符串.
转换成最终的url字符串
This:
Returns:
- Type
- string
unshiftSort(sortKey) → {Songo}
在队列第一个插入,类似Array.prototype.unshift.
在队列第一个插入,类似Array.prototype.unshift
Example
let songo = new Songo({sort:['-create']});
songo.unshiftSort('created'); // songo.sort >> ['created']
songo.unshiftSort('level'); // songo.sort >> ['level','created']
songo.unshiftSort('-money'); // songo.sort >> ['money','level','created']
Parameters:
Name | Type | Description |
---|---|---|
sortKey |
string | 排序key,例如"+created","-created";默认+可以不填 |
Returns:
- Type
- Songo