Angular-异步管道-模板绑定行为

时间:2019-02-17 14:49:19

标签: angular asynchronous pipe templatebinding

我正在将一个可观察对象绑定到我的Angular模板,并有条件地绑定以显示“ loading ..”消息,直到异步管道解析数据为止。

绑定工作正常,我正在获取数据,并且触发“ loading ..”消息,直到我获取数据为止。

<div *ngIf=" (combinedResult$ | async )  as favData ;else  loading"> 
   <p> {{ Binding Goes here}} </p>
</div>

<ng-template #loading>
       loading...   
</ng-template>

但是如果我通过将结果包装到“ details:”对象中来更改* ngIf,则if条件不起作用,并且我看不到“正在加载..”消息。 (但数据具有约束力。)

 <div *ngIf=" { details: (combinedResult$ | async ) } as favData  
   ;else  loading">

      <p> {{ Binding Goes here}} </p>

  </div>

我在这里想念什么?。

1 个答案:

答案 0 :(得分:2)

在此,router.put("/:id", middleware.isLoggedIn, middleware.isAdmin, upload.single('image'), function(req, res) { Product.findById(req.params.id, async function(err, prod) { if (err) { req.flash("error", err.message); } else { if (req.file) { try { await cloudinary.v2.uploader.destroy(prod.imageId); var result = await cloudinary.v2.uploader.upload(req.file.path); prod.image = result.secure_url; prod.imageId = result.public_id; } catch (err) { req.flash("error", err.message); return res.redirect("back"); } } prod.save(); req.flash("success", "Updated Successfully"); res.redirect("/admin"); } }); });

*ngIf="{ details: (combinedResult$ | async ) } as favData; else loading"始终计算为true,因为它不是条件,而是赋值。

因此它永远不会显示加载,因为ngIf总是评估为 true