apostrophe-pieces-widgets 是否被分页?还是我需要手动实施
Is apostrophe-pieces-widgets paged ? or do i need to implement it manualy
我有一个属性,其中每个 属性 都分配给一个代理人,
我想要做的是在 "show" 页面中显示分配给每个代理的属性列表。
我正在考虑在代理页面内使用 apostrophe-pieces-widgets,但我不确定以这种方式使用它是否可行,我需要它被分页。
如果这不是正确的方法,我会被指出正确的方向。
编辑:刚看到你说需要分页的说明,你的意思是分页吗?如果是这样,答案会涉及更多
下面的答案将获得所有加入的 属性 件并将它们传递给代理显示页面
假设当你说 'each property is assigned to an agent' 你的意思是每个 属性 都有一个 joinByOne
字段指向一个代理片,你可以在 beforeShow
方法,并将它们附加到 data
,以便它们在您的模板中可用 (/lib/modules/AGENT-PAGES-MODULE/views/show.html
)
在/lib/modules/AGENT-PAGES-MODULE/index.js
```
module.exports = {
... basic module configuration
construct: function (self, options) {
self.beforeShow = function(req, callback) {
var criteria = { idFIELD_NAME_IN_PROPERTY_SCHEMA: req.data.piece._id }
var projection = {} // This will get entire matching doc, you should clamp this down
return self.apos.modules['PROPERTY_MODULE_NAME'].find(req, criteria, projection).toArray(function (err, docs) {
req.data.relatedDocs = docs
return callback(null);
});
}
}
};
```
然后在 show.html 中你将有 data.relatedDocs
遍历
图中没有分页,最简单的方法就是加一个reverse join。
如果属性有此字段:
{
name: '_agents',
type: 'joinByArray',
withType: 'agent'
}
然后代理商可以用这个来获取将 加入 的属性列表,作为 _properties
字段:
{
name: '_properties',
type: 'joinByArrayReverse',
reverseOf: '_agents'
}
图片有分页,视情况而定。如果我们谈论的是每个代理可能有 100 个属性,我会说使用这种技术并有选择地自己在模板级别实现分页。如果每个代理有超过 100 个属性,则可能值得实现您自己的属性查询,在该游标上设置 perPage()
并使用 toCount()
获取计数,然后使用 toArray()
使用 perPage()
和 page()
指定页码。这正是 apostrophe-pieces-pages
实现分页的方式,因此您可以从那里借鉴。
从长远来看,如果可以通过 Apostrophe 中的连接和反向连接的配置来指定分页,那将是更理想的。
我有一个属性,其中每个 属性 都分配给一个代理人, 我想要做的是在 "show" 页面中显示分配给每个代理的属性列表。 我正在考虑在代理页面内使用 apostrophe-pieces-widgets,但我不确定以这种方式使用它是否可行,我需要它被分页。 如果这不是正确的方法,我会被指出正确的方向。
编辑:刚看到你说需要分页的说明,你的意思是分页吗?如果是这样,答案会涉及更多
下面的答案将获得所有加入的 属性 件并将它们传递给代理显示页面
假设当你说 'each property is assigned to an agent' 你的意思是每个 属性 都有一个 joinByOne
字段指向一个代理片,你可以在 beforeShow
方法,并将它们附加到 data
,以便它们在您的模板中可用 (/lib/modules/AGENT-PAGES-MODULE/views/show.html
)
在/lib/modules/AGENT-PAGES-MODULE/index.js
```
module.exports = {
... basic module configuration
construct: function (self, options) {
self.beforeShow = function(req, callback) {
var criteria = { idFIELD_NAME_IN_PROPERTY_SCHEMA: req.data.piece._id }
var projection = {} // This will get entire matching doc, you should clamp this down
return self.apos.modules['PROPERTY_MODULE_NAME'].find(req, criteria, projection).toArray(function (err, docs) {
req.data.relatedDocs = docs
return callback(null);
});
}
}
};
```
然后在 show.html 中你将有 data.relatedDocs
遍历
图中没有分页,最简单的方法就是加一个reverse join。
如果属性有此字段:
{
name: '_agents',
type: 'joinByArray',
withType: 'agent'
}
然后代理商可以用这个来获取将 加入 的属性列表,作为 _properties
字段:
{
name: '_properties',
type: 'joinByArrayReverse',
reverseOf: '_agents'
}
图片有分页,视情况而定。如果我们谈论的是每个代理可能有 100 个属性,我会说使用这种技术并有选择地自己在模板级别实现分页。如果每个代理有超过 100 个属性,则可能值得实现您自己的属性查询,在该游标上设置 perPage()
并使用 toCount()
获取计数,然后使用 toArray()
使用 perPage()
和 page()
指定页码。这正是 apostrophe-pieces-pages
实现分页的方式,因此您可以从那里借鉴。
从长远来看,如果可以通过 Apostrophe 中的连接和反向连接的配置来指定分页,那将是更理想的。