我如何订阅 PencilBlue 中的事件?
How do I subscribe to events in PencilBlue?
我实际上无法确定如何订阅事件,或者至少无法正确订阅。关于如何执行此操作的文档似乎不多,因此我从现有服务中获取了一些提示。
这是我正在使用的代码:
module.exports = function(pb){
//pb dependencies
var BaseObjectService = pb.BaseObjectService;
var TYPE = 'page';
function PageProxyService() {}
PageProxyService.init = function(cb){
pb.log.debug('PageProxyService: Initialized');
cb(null, true);
};
PageProxyService.handlePageSave = function(context, cb){
// I'm using console.log to make the message stand out more.
// For production things, I use pb.log.debug :)
console.log("===================================");
console.log("I GOT A CALL");
console.log("===================================");
console.log(context);
console.log("===================================");
cb(null);
};
// Trying to subscribe to any of these seems to do nothing.
BaseObjectService.on(TYPE + '.' + BaseObjectService.BEFORE_SAVE, PageProxyService.handlePageSave);
BaseObjectService.on(TYPE + '.' + BaseObjectService.AFTER_SAVE, PageProxyService.handlePageSave);
//exports
return PageProxyService;
};
handlePageSave
永远不会被调用。我做错了什么?
PageObjectService 将触发事件。然而,从 0.4.1 开始,并不是所有的控制器,正如您所发现的,都已经转换为利用该服务。已创建一个新控制器 PageApiController 来代替现有控制器。 UI 最终将(~2016 年第一季度)转换为使用新的 API 端点。
我实际上无法确定如何订阅事件,或者至少无法正确订阅。关于如何执行此操作的文档似乎不多,因此我从现有服务中获取了一些提示。
这是我正在使用的代码:
module.exports = function(pb){
//pb dependencies
var BaseObjectService = pb.BaseObjectService;
var TYPE = 'page';
function PageProxyService() {}
PageProxyService.init = function(cb){
pb.log.debug('PageProxyService: Initialized');
cb(null, true);
};
PageProxyService.handlePageSave = function(context, cb){
// I'm using console.log to make the message stand out more.
// For production things, I use pb.log.debug :)
console.log("===================================");
console.log("I GOT A CALL");
console.log("===================================");
console.log(context);
console.log("===================================");
cb(null);
};
// Trying to subscribe to any of these seems to do nothing.
BaseObjectService.on(TYPE + '.' + BaseObjectService.BEFORE_SAVE, PageProxyService.handlePageSave);
BaseObjectService.on(TYPE + '.' + BaseObjectService.AFTER_SAVE, PageProxyService.handlePageSave);
//exports
return PageProxyService;
};
handlePageSave
永远不会被调用。我做错了什么?
PageObjectService 将触发事件。然而,从 0.4.1 开始,并不是所有的控制器,正如您所发现的,都已经转换为利用该服务。已创建一个新控制器 PageApiController 来代替现有控制器。 UI 最终将(~2016 年第一季度)转换为使用新的 API 端点。