Angular 1不接受onchange()
事件,它只接受ng-change()
事件。
另一方面,Angular 2接受(change)
和(ngModelChange)
事件,这两者似乎在做同一件事。
有什么不同吗?
哪一个性能最好?
NGModelChange:
<input type="text" pInputText class="ui-widget ui-text"
(ngModelChange)="clearFilter()" placeholder="Find"/>
vs变化:
<input type="text" pInputText class="ui-widget ui-text"
(change)="clearFilter()" placeholder="Find"/>
绑定到经典输入更改事件的(change)
事件。
https://developer.mozilla.org/en-us/docs/web/events/change
即使在输入端没有模型,也可以使用(change)事件作为
<input (change)="somethingChanged()">
(ngModelChange)
是ngModel指令的@output
。它在模型更改时激发。如果没有ngModel指令,则无法使用此事件。
https://github.com/angular/angular/blob/master/packages/forms/src/directives/ng_model.ts#L124
当您在源代码中发现更多信息时,(ngModelChange)
会发出新值。
https://github.com/angular/angular/blob/master/packages/forms/src/directives/ng_model.ts#L169
所以这意味着你有这样的使用能力:
<input (ngModelChange)="modelChanged($event)">
modelChanged(newObj) {
// do something with new value
}
基本上,两者之间似乎没有很大的区别,但是NGModel
事件在使用[ngValue]
时获得了强大的功能。
<select [(ngModel)]="data" (ngModelChange)="dataChanged($event)" name="data">
<option *ngFor="let currentData of allData" [ngValue]="currentData">
{{data.name}}
</option>
</select>
dataChanged(newObj) {
// here comes the object as parameter
}
假设您在没有“ngmodel
东西”的情况下尝试相同的东西
<select (change)="changed($event)">
<option *ngFor="let currentData of allData" [value]="currentData.id">
{{data.name}}
</option>
</select>
changed(e){
// event comes as parameter, you'll have to find selectedData manually
// by using e.target.data
}
问题内容: Angular 1不接受事件,它仅接受事件。 另一方面,Angular 2接受和事件,两者似乎都在做相同的事情。 有什么不同? 哪个最适合表现? ngModelChange : vs Change : 问题答案: 事件绑定到经典输入更改事件。 即使您没有输入模型,也可以使用(更改)事件,如下所示: 是ngModel指令的。模型更改时将触发。如果没有ngModel指令,则无法使用此事件。
问题内容: Angular 1不接受事件,它仅接受事件。 另一方面,Angular 2接受和事件,两者似乎都在做相同的事情。 有什么不同? 哪个最适合表现? ngModelChange: vs change: 问题答案: 事件绑定到经典输入更改事件。 即使您没有输入模型,也可以使用(更改)事件,如下所示: 是ngModel指令的。模型更改时将触发。如果没有ngModel指令,则无法使用此事件。 当
问题内容: 输入如下: 当我手动键入并更改输入时,将执行。但是,如果我以编程方式通过其他功能更改了repair.test值,则不会触发ng- change的操作。我已经阅读了角度教程,这可能是预期的行为。 https://docs.angularjs.org/api/ng/directive/ng更改 “当值更改来自模型时,不评估表达式。” <-我也需要这个。模型以任何方式更改时,如何在控制器中触
问题内容: 我只想知道火热的使用方法。在控制器内,以下代码可以正常工作,并且在3秒后更新DOM: 但是通过使用 没发生什么事… 我以为他们做同样的事情。我怎么了? 问题答案: 并有一些异同。它们的相似之处在于它们都检查了更改内容并更新了UI并触发了所有观察程序。 两者之间的区别是它们的调用方式。被调用而没有任何参数。具有在执行任何更新之前将要执行的功能。 另一个区别是它们的影响。将更新当前范围和任
问题内容: 当前,我们可以通过几种方式监视数据更改。我们可以使用触发模型更改,并且可以向元素添加指令并对其绑定一些操作。 在许多情况下,这有点令人困惑,所以我很好奇,这是每个变体的优缺点,何时应该使用绑定,何时使用诸如?的指令? 问题答案: 两者和具有完全不同的用法: 假设您有一个在范围内定义的模型: 现在,如果您想在发生任何更改时执行某些操作,则可以使用: 是一个指令,当用户更改输入时将评估给定
我一直在寻找了解这 3 个: 主题 行为主体 重播主题 我想使用它们,并知道何时、为什么使用它们,使用它们有什么好处,尽管我已经阅读了文档、观看了教程并搜索了谷歌,但我对此没有任何理解。 那么他们的目的是什么?一个真实的案例将是最受欢迎的,它甚至不需要编写代码。 我更喜欢一个干净的解释,而不仅仅是“a b = 非常感谢。