在if.bind中禁用视图缓存?

时间:2016-12-13 17:02:48

标签: javascript aurelia

我遇到<object>if.bind标记的奇怪问题。从本质上讲,似乎if缓存中的视图片段正在被缓存。我在Gist.run上创建了一个Gist,在这里:

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

  

对象标签似乎不会在if绑定中重新呈现。这意味着如果插入了回退内容,if绑定发生更改时,对象内容不会刷新。

     
      
  1. 使用数字输入更改下面图像的大小。如果您将数字更改为零,则图片将无效,并且会显示后备内容。
  2.   
  3. 重新添加号码。内容不刷新。这是known bug
  4.   
  5. 但是,通过if.bind切换内容不会重置对象本身(尽管数据应该重新绑定)。视图是否已缓存?
  6.   

我不完全确定是什么导致了这个问题,但我相信这可能是由于Aurelia的缓存造成的。我相信每次if绑定重新出现时,Aurelia都不会重建视图(尽管它重新运行绑定)。这意味着<object>无效,并显示后备内容。如果是这种情况,有没有办法禁用if绑定的缓存 - 可能是通过绑定行为?

1 个答案:

答案 0 :(得分:0)

我怀疑问题可能实际上是你正在使用的aurelia-bundle,而不是aurelia核心。你的gist.run显然很好地展示了这个问题。我怀疑这一点的唯一原因是,我只是尝试使用aurelia-cli重现错误并将-bootstrapper和-tools更新为最新转速。刚刚从gist.run复制了你的app.html和app.js。在aurelia-cli中无法重现与你在gist.run中观察到的相同的bug。还有其他差异虽然:)例如,平板文本没有出现,而是我在滚动div中看到placehold.it页面。很奇怪。无论如何,我希望这个答案可以帮助你搞清楚!这是我测试过的模块版本。

$ npm list | grep aurelia
├─┬ aurelia-animator-css@1.0.1
│ ├── aurelia-metadata@1.0.2
│ ├── aurelia-pal@1.1.1
│ └─┬ aurelia-templating@1.1.4
│   ├── aurelia-binding@1.1.0
│   ├── aurelia-loader@1.0.0
│   ├── aurelia-path@1.1.1
│   └── aurelia-task-queue@1.1.0
├─┬ aurelia-bootstrapper@2.0.0
│ ├── aurelia-event-aggregator@1.0.1
│ ├── aurelia-framework@1.0.8
│ ├── aurelia-history@1.0.0
│ ├── aurelia-history-browser@1.0.0
│ ├── aurelia-loader-default@1.0.0
│ ├── aurelia-logging-console@1.0.0
│ ├── aurelia-pal-browser@1.1.0
│ ├── aurelia-polyfills@1.1.1
│ ├─┬ aurelia-router@1.1.0
│ │ └── aurelia-route-recognizer@1.1.0
│ ├── aurelia-templating-binding@1.1.0
│ ├── aurelia-templating-resources@1.2.0
│ └── aurelia-templating-router@1.0.1
├─┬ aurelia-cli@0.23.0
│ ├── aurelia-dependency-injection@1.2.0
├─┬ aurelia-testing@1.0.0-beta.2.0.1
│ └── aurelia-logging@1.2.0
├─┬ aurelia-tools@1.0.0