如果component方法生成一个输出事件,则角度组件变量不会在视图中更新。焦点变量为“ qMode”,
具有生成输出事件的功能(不可更新变量)
.active {
background-color: red;
}
不生成输出事件的功能(UPDATING VARIABLE)
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div class="content-nav-bar"data-bind="css: {'active' : isActive()}">
hello
</div>
<button type="button" data-bind="click: chgCSS">Submit</button>
请在此处找到代码Demo,
答案 0 :(得分:1)
当您在saveQuestion上调用emit时,这将触发父组件更新问题列表。
由于您没有按值设置跟踪,因此会重新呈现该列表。在onInit的问题组件中,该值被更改回'edit'。
您可以通过按功能将曲目添加到列表来解决此问题。这样可以确保仅在发生更改时才重新渲染组件。
在app-component.html
中<div *ngFor="let question of questions; let i = index; trackBy: trackQuestion">
在app-component.ts
中trackQuestion(index: number, question) {
return index.toString();
// you can implement custom logic here using the question
}
您可以在此处找到一个堆栈闪电的示例:https://stackblitz.com/edit/angular-fdshce