当通过ComponentFactory动态创建组件时,返回的ComponentRef提供了一个destroy方法,它非常适合我想要完成的任务。记住这一点,看起来我需要做的就是为一个静态创建的组件获取一个ComponentRef,然后使用它的destroy函数(这个答案陈述了这一点),但是当我尝试这样做时,我得到一个错误,说“destroy不是一个函数”,即使我确实得到了一个对象。
下面是我用于ViewChild的语法:
@ViewChild(MyComponent) myComponentRef: ComponentRef<MyComponent>;
还有我的“毁灭”电话:
private destroy() {
this.myComponentRef.destroy();
}
在这里被触发:
<button (click)="destroy()">Destroy</button>
调用此“destroy”方法适用于我动态创建的组件,但不适用于静态创建的组件。
编辑:
因此,这似乎确实部分删除了组件,但没有从DOM中删除,这与在动态创建的组件上调用“destroy”时发生的行为不同。此外,当我单击我试图销毁的组件时,我的单击事件函数仍然会触发。
编辑2:我更新了我的ViewKids语法以显式读取ComponentRef,并返回“未定义”:
@ViewChild(MyComponent, {read: ComponentRef}) myComponentRef: ComponentRef<MyComponent>;
如果返回“undefined”,那么我猜这可能是不可能的。
您可以在组件的容器中添加 *ngIf 并在条件 (ngif) 的基中添加 *ngIf 执行子元素的销毁和创建。例:
在视图中:
<div *ngIf="destroy">
<component-child></component-child>
</div>
<button (click)="destroyFunction()">Click to Destroy</button>
在组件父类中:
//Declare the view child
@ViewChild(componentChild) componentChild: componentChild;
//Declare the destroy variable
destroy:boolean;
//Add a function to change the value of destroy (boolean)
public destroyFunction(){
this.destroy = false;
}
执行这些步骤可以执行子元素的销毁。我希望它对你有效
所以我有一个扩展JPanel的“GameCourt”类。这个类覆盖paintComponent代码,以便绘制一些组件(迷宫、字符和一些硬币)。这个JPanel是扩展JLayeredPane的类的一部分,它有两层,一层用于绘制背景(使用扩展JPanel的BackgroundPanel类),另一层用于绘制我想要的所有元素(一个重置按钮,一个标签..) 所以我想要的是JLayeredPane中背景上方的
问题内容: 我正在尝试设置spring xml配置,而不必创建进一步的。但是,即使我将数据库属性包括在 spring.xml: 我在这里想念什么? 问题答案: 在entityManagerFactory bean定义中指定“ packagesToScan”和“ persistenceUnitName”属性。 请注意,这适用于Spring版本> 3.1
问题内容: 我正在学习使用Selenium(v2.20)来领先一些 即将使用它创建浏览器测试的程序员。我想在 陷阱到达之前发现它们,而我却跌入了一个陷阱。 当我创建ChromeDriver时,它始终会弹出“ Google Chrome EULA”并 显示两个按钮:“接受并运行”和“取消”。因为我希望这是一个 自动化测试,所以让用户单击按钮是不可能的。 我查看了Chromium CommandSwi
我已经安装了Android SDK最新版本和Eclipse。但我也想试试Android Studio。 我看过这个和这个帖子,但是那些解决方案改变了Android Studio(一旦下载并安装)使用的SDK实例。我想要的不是下载另一个SDK,当我已经在我的机器上安装了它。
问题内容: 我怎么能包括为没有MANIFEST.in文件? 我的setup.py看起来像这样: 版本: 我就是无法加入。 还是此博客文章仍然正确? http://blog.codekills.net/2011/07/15/lies,-more-lies-and-python-packaging- documentation-on– package_data-/ 不过,在过去的一个小时中,我了解到这
问题内容: 示例问题: 实体: 用户包含姓名和朋友列表(用户参考) 博客文章包含标题,内容,日期和作者(用户) 需求: 我想要一个显示标题的页面以及指向用户朋友的最近10篇博客的链接。我还希望能够通过较旧的条目继续进行分页。 SQL解决方案: 因此在sql land中,它将类似于: 我能想到的GAE解决方案是: 加载用户,循环浏览好友列表并加载其最新博客帖子。最后合并所有博客文章以查找最新的10个
我花了过去几个小时试图设置2默认图像的nodejs 14和rethinkdb 2.3.5,所以很抱歉,如果语气有点沮丧,但我目前感到沮丧。 我的要求似乎超级简单。 下载nodejs 14和RejectDB 2.3.5的默认图像。 将我当前目录中的所有内容复制到nodejs 14映像中 我希望nodejs图像依赖于DB图像 在nodejs 14图像中运行2个命令<代码>npm ci和 请参阅测试中的
我有一个带有私有方法的类,该方法调用一些外部类并执行它,如果不使用powermock,我如何防止这种情况发生?(该项目使用Junit5,目前还不支持powermock)。 我考虑过将这些函数移到外面,但我觉得有时方法确实属于特定的类,因为它们是它的一部分,将它们移出对我来说没有意义,下面只是一个例子来说明。 我已经知道大多数人会说不要测试私有方法,但a.我不完全同意,b.我不想在这里测试这个方法,