在模板中使用安全导航操作符(?.)是避免出现空值引用异常的好方法,但是在某些情况下,它可能无效。
可能的原因是,模板中使用的属性可能不是来自于组件本身,而是从模块中导入的。这时,要确保使用的属性已经被正确地初始化。
此外,Angular 2还提供了另一种解决方法,可以对属性进行可观测序列(observables)化,从而避免了可能的空值引用异常。
以下是一个示例:
在组件中,我们定义一个名为“myObservable”的属性:
import { Component } from '@angular/core'; import { Observable } from 'rxjs/Observable';
@Component({
selector: 'my-component',
template: {{ myObservable | async }}
})
export class MyComponent {
myObservable: Observable
在模板中,我们将属性“myObservable”通过管道“async”进行可观测序列化。
这样就可以在模板中避免出现空值引用异常了。