在IE9中不加载Knockout动态模板

时间:2014-12-08 15:38:53

标签: javascript jquery knockout.js internet-explorer-9

演示: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不支持这个吗?有没有办法让这个工作?

1 个答案:

答案 0 :(得分:0)

我只知道我的代码有什么不同......

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

... Aparently

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上。不过不知道为什么。 (如果有人知道,我有兴趣听取解释)