在cms.service.ts的getComponentData函数尾部加上subscribe方法打印取回的Componentdata:
/**
* Get CMS component data by uid
*
* This method can be safely and optimally used to load multiple components data at the same time.
* Calling getComponentData multiple times for different components will always result in optimized
* back-end request: all components requested at the same time (in one event loop) will be loaded in one network call.
*
* In case the component data is not present, the method will load it.
* Otherwise, if the page context is not provided, the current page context from the router state will be used instead.
*
* @param uid CMS component uid
* @param pageContext if provided, it will be used to lookup the component data.
*/
getComponentData<T extends CmsComponent | null>(
uid: string,
pageContext?: PageContext
): Observable<T> {
const context = serializePageContext(pageContext, true);
if (!this.components[uid]) {
// create the component data structure, if it doesn't already exist
this.components[uid] = {};
}
const component = this.components[uid];
if (!component[context]) {
// create the component data and assign it to the component's context
component[context] = this.createComponentData(uid, pageContext);
}
const result = component[context] as Observable<T>;
console.log('Jerry in getComponentData method, uid: ' + uid);
result.subscribe((data) => {
console.log('Jerry got cp data: ' + JSON.stringify(data));
});
return result;
}

Jerry in getComponentData method, uid: HamburgerMenuComponent

在下图这里这个自定义指令cx-component-wrapper发起的对某Component的读取请求:

网友评论