演示:http://jsfiddle.net/bL7qatx1/
在 IE10+\Chrome\FF 中,上面的 fiddle 工作正常。但是,在 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,但未绑定(bind)到 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 上。但不知道为什么。 (如果有人知道,我很想听听解释)
关于javascript - Knockout 动态模板在 IE9 中不加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27361423/