我想创建一个手风琴组件。一次只能打开一个标签。一切正常,直到我将changeDetection
更改为ChangeDetectionStrategy.OnPush
。我正在调用detectChanges
方法,但是某种程度上它不会触发changeDetection
。
我的手风琴设计如下:
AccordionTabComponent
是孩子,它知道选项卡是打开还是关闭。通过forwardRef
,他可以将父母称为closeOthers
方法。AccordionComponent
是父组件。通过@ContentChildren
,它了解子选项卡,并管理关闭/打开行为。closeOthers
父方法。当父组件关闭所有打开的选项卡时,调用detectChanges
。它应该触发更改检测并更新DOM
。但是这最后的事情不会发生。我不确定是什么原因造成的,也许是因为<ng-content>
造成的?
Stackblitz example。
答案 0 :(得分:2)
由于您尝试使用app.cpp: In member function ‘std::pair<int,std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > ResponseFunction::get(InputValidator)’:
app.cpp:91:46: error: no matching function for call to ‘make_pair(int, std::__cxx11::string&, const char [1])’
return std::make_pair(0,empty, "");
变量关闭其他标签,因此需要在selected
变量的setter内添加一个setter和detectChanges
。