角安全导航算子的清晰度

时间:2019-06-23 15:15:34

标签: angular

Angular Docs说:

  

但是,有时,在以下情况下,属性路径中的空值可能没有问题   在某些情况下,尤其是当值以null开始但   数据最终到达。

     

使用安全导航操作符?,Angular停止评估   到达第一个null值并呈现视图时的表达式   没有错误。

我在这里发现一点歧义。它是否表示使用安全导航操作符不会呈现(更新)最初为null的数据,但是由于AJAX调用在一段时间后更新了该对象而最终被更改了吗?

1 个答案:

答案 0 :(得分:4)

  

是否表示使用安全导航操作器不会   渲染(更新)数据,该数据最初为空,但最终被更改   之所以说是因为AJAX调用会在一段时间后更新该对象?

不。这意味着该表达式在检测到某个YouTubePlayerFragmentX youTubePlayerFragment = YouTubePlayerFragmentX.newInstance(); FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); transaction.add(R.id.youtube_fragment, youTubePlayerFragment).commit(); 值之后就不会求值(但是,如果将来更改为某个非null值,则不会停止渲染)。

例如,如果您在 component.ts 中拥有

null

,并且在 component.html 中,您拥有

val = null;
// ...
someService.someMethod().susbcribe(val => this.val);

最初,由于{{val?.someProperty}} val,因此不会呈现任何内容。

现在,一旦某个值到达null内并且susbcribe得到一些非空值,则this.val的值将呈现在视图中。

使用超时查看 demo