演示: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不支持这个吗?有没有办法让这个工作?
答案 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上。不过不知道为什么。 (如果有人知道,我有兴趣听取解释)