2016-12-13 28 views
2

我遇到了一個if.bind<object>標記的奇怪問題。實際上,它看起來好像在緩存裏面的if綁定的視圖片段。我創建了一個要點與我的Gist.run發現,這裏:在if.bind中禁用視圖緩存?

https://gist.run/?id=e25a4e4ca1de59ba8baff20c3a4304c2

對象標籤不出現重新呈現內的,如果綁定。這意味着如果在已插入回退內容的情況下if綁定更改,則不會刷新對象內容。

  1. 使用數字輸入改變下面圖像的大小。如果將數字更改爲零,則圖像將無效,並會顯示回退內容。
  2. 重新添加號碼。內容不刷新。這是一個known bug
  3. 但是,通過if.bind切換內容不會重置對象本身(儘管數據應該重新綁定)。該視圖是否緩存?

我不完全知道是什麼導致這個問題,但我相信,這可能是由於Aurelia路上的緩存。我相信Aurelia不會在每次if綁定重新出現時重建視圖(儘管它正在重新運行綁定)。這意味着<object>無效,並顯示回退內容。如果是這種情況,有沒有辦法爲if綁定禁用緩存 - 可能是通過綁定行爲?

回答

0

我懷疑問題實際上可能在您使用的aurelia-bundle中,而不是在aurelia核心中。你的gist.run很明顯地表明瞭這個問題。我懷疑這一點的唯一原因是,我只是嘗試使用aurelia-cli重新編譯該錯誤,並將-bootstrapper和-tools更新爲最新版本。剛剛從gist.run複製了app.html和app.js。在aurelia-cli無法重現你在gist.run中觀察到的同樣的錯誤。還有其他的不同之處:)例如plateholder文本不會出現,而是我在滾動div中看到placehold.it頁面。很奇怪。無論如何,我希望這個答案可以幫助你弄明白!這裏是我測試的模塊版本。

$ npm list | grep aurelia 
├─┬ [email protected] 
│ ├── [email protected] 
│ ├── aurelia-p[email protected] 
│ └─┬ [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
├─┬ [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
├─┬ [email protected] 
│ ├── [email protected] 
├─┬ [email protected] 
│ └── [email protected] 
├─┬ [email protected] 
+0

好的呼叫。我更新了我的代表,但我仍然看到同樣的事情。奇怪的是,你看到的是網站本身,而不是後備內容,我認爲這不應該發生。嘗試放入明顯無效的圖片網址,您應該看到我看到的行爲。 –

+0

是的,如果我編輯數據屬性始終是無效的URL,那麼我總是看到佔位符文本,但從來沒有別的。在aurelia-cli上下文中,仍然無法在OS X上使用Chrome55進行再現。但我也沒有看到第2步錯誤,這是你引用的已知問題。從某種意義上說,你的錯誤取決於那個錯誤。這是一個奇怪的,你是對的! –

+0

我在本地確認了你的行爲。我認爲它可能與從本地主機運行而不是從服務器運行有關。無論如何,主要問題在於,如果出於任何原因(無效URL,負載不佳等)顯示回退內容,則通過「if」綁定移除和重新綁定似乎實際上不會在DOM中重新創建該元素。 –