有人可以帮我吗,因为我被此功能所困扰,但在应用程序中非常重要。
打字稿文件
get $approved(): Observable<boolean> {
return this.$entries.map(entries => {
if (entries.length > 0) {
return false;
} else {
entries.every(entry => {
return entry.approved != null;
})
}
});
}
HTML文件
<h1 *ngIf="$approved | async">PLANT</h1>
问题是,它永远不会显示H1标签。而且我不知道为什么不这样做。
答案 0 :(得分:0)
您的else
块从不返回任何内容,因此该方法仅返回两者都是虚假的false
或undefined
。更新代码以返回every
的结果:
return entries.every(entry => {
return entry.approved != null;
});
答案 1 :(得分:0)
如果在上面的代码中该值为true,则永远不会真正返回该值。在else块中,您可能需要:
<Switch>..</Switch>
答案 2 :(得分:0)
您在此处未正确返回值:
entries.every(entry =>{ return entry.approved != null; })
尝试这样的事情:
let result = false;
entries.every(entry =>{
if (!result) result = (entry.approved != null) ? entry.approved : false;
});
return result;
未将回调内的return语句复制为外部方法的返回。闭包不适用于返回值。外部方法必须具有return语句。