当函数发出输出事件时,角组件属性视图未更新

时间:2018-08-29 03:57:54

标签: angular angular6 angular-event-emitter

如果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

1 个答案:

答案 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