javascript - Knockout 动态模板在 IE9 中不加载

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

演示: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/

相关文章:

jquery - youtube chromeless缩放播放器

jquery - 禁用具有相同数组名称的所有输入

javascript - Timepicker Javascript 以不正确的方式显示时间

knockout.js - Knockout 是否支持样式的双向绑定(bind)?

jquery-mobile - knockout 刷新 html 中的 observableArray

javascript - 如何使用AJAX获取oAuth参数?

javascript - 将最大高度更改回零作为过渡或动画

javascript - 在 applyBindings 上敲击触发点击绑定(bind)

javascript - 如何向复制的网页文本添加额外信息

javascript - 修改正则表达式,以便仅捕获 [a-zA-Z]