Angular:将服务结果导出到组件最佳样式



假设我有一个服务,我需要它在我的组件中的结果。

<p>{{ foo.getit () }}</p>
...
constructor (private foo : MyFooService)
{
}

如果由于可访问性而为生产构建应用程序(ng-build-prod(,则这是一个错误。

声明foo为public或者用public方法包装它(如下所述(是更好的风格吗?

<p>{{ getFoo ().getit () }}</p>
...
constructor (private foo : MyFooService)
{
}
getFoo ()
{
return this.foo;
}

或者有更好的方法吗?

是的。

你应该把你的函数结果放在一个组件变量中,这样角度变化检测就不会用传递的调用来垃圾邮件foo.getit或落入无限变化检测循环

<p>{{ getFooTit() }}</p>
...
constructor (private foo: MyFooService){}
fooTitResult
getFooTit()
{
if(!this.fooTitResult){
this.fooTitResult = this.foo.getit();
}
return this.fooTitResult;
}

最新更新