挖空动态模板不会在 IE9 中加载

Knockout dynamic templates do not load in IE9

本文关键字:IE9 加载 动态      更新时间:2023-09-26

演示:http://jsfiddle.net/bL7qatx1/

在IE10+''Chrome''FF中,上面的小提琴工作正常。但是,在IE9中,动态添加的模板不会加载到div中(脚本加载到DOM中)。

var contentsElem = $('#contents');
var dynamicTemplateContents = '<div>This is the dynamic template...</div>';
var scriptElem = $('<script id="dynamic-template" type="text/html">');
scriptElem.html(dynamicTemplateContents);
$('body').append(scriptElem);
var vm = {
    template1: 'static-template',
    template2: 'dynamic-template',
};
ko.applyBindings(vm);

我发现了 https://github.com/knockout/knockout/issues/777,这意味着它应该有效。但是,我的代码似乎有些不同。

脚本元素被添加到 DOM 中,但不绑定到 KO 中的div。由于某种原因,IE9 不支持此功能吗?有没有办法让它工作?

我刚刚弄清楚我的代码有什么不同......

工作演示:http://jsfiddle.net/bL7qatx1/1/

无父母...

var scriptElem = $('<script id="dynamic-template" type="text/html">');
scriptElem.html(dynamicTemplateContents);
$('body').append(scriptElem);

。和...

$('body').append('<script type="text/html" id="dynamic-template">'+dynamicTemplateContents+'</' + 'script>');

。在 IE9 上。不过不知道为什么。(如果有人知道,我很想听听解释)