【问题标题】:knockoutjs IE 8 : Couldn't find any memo with ID ed2d1f3121ff7e. Perhaps it's already been unmemoizedknockoutjs IE 8:找不到 ID 为 ed2d1f3121ff7e 的任何备忘录。也许它已经被unmemoized
【发布时间】:2015-11-13 13:56:23
【问题描述】:

我有一个来自服务器的视图模型,我使用本地 java 脚本对象进行扩展。我用

viewModel = ko.mapping.fromJS(serverData); 

$.extend(viewModel, otherItems);

otherItems 具有标记为 observable 和 observableArray 的附加属性。在 Firefox 和 chrome 中一切正常,但在 IE 8 上我得到了

“找不到任何 ID 为 ed2d1f3121ff7e 的备忘录。也许它已经被取消了”

关于 ko.applyBindings(viewModel);

如果我不扩展对象,则会出现错误。有什么建议吗?

编辑 无法添加完整代码,但这里有一些 sn-ps

我正在使用 Galleria 插件来读取在我的一个文本模板中定义的 div。 div 设置如下。如果我删除此行,我不会收到任何错误。

<script id="PropertyView" type="text/html">  
...
  <div id="Gallery" data-bind='template: {name:"ImageGallery", foreach: propertyImages}'>

   </div>

...

    var otherItems = {  
                    similarProperties: ko.observableArray([]),
                    visibleFeatures: ko.observableArray([]), 
                    propertyImages: ko.observableArray([]),
                    currentImageUrl: ko.observable(""),
                    currentImageIndex: ko.observable(-1),
                    previousImage : function()
                    {
                        this.currentImageIndex(this.currentImageIndex() - 1);
                    },
                    nextImage : function()
                    {
                        this.currentImageIndex(this.currentImageIndex() + 1);
                    }
                }

                var viewModel = ko.mapping.fromJS(data)

                $.extend(viewModel,otherItems);
                ko.applyBindings(viewModel);

【问题讨论】:

  • 你能分享更多代码或jsFiddle吗?
  • 您能否调查错误时的堆栈跟踪以查看正在调用哪些函数会产生此错误?
  • @RPNiemeyer 添加了更多代码

标签: jquery internet-explorer knockout.js


【解决方案1】:

我也有同样的问题。最后我已经修复了,模板绑定导致了这个问题。检查您的模板中使用您传递的数组的绑定元素。

【讨论】:

    猜你喜欢
    • 2019-07-07
    • 2012-05-16
    • 1970-01-01
    • 2021-11-13
    • 2018-09-24
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    相关资源
    最近更新 更多