2016-12-13 27 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中重新创建该元素。 –