我正在使用Knockout.js并且我有以下绑定来添加间距(margin-left)。
<div class="editor-field" data-bind="style : { 'margin-left' : ($root.getHierarchyLevel($index()) * 30 + 'px')}">
这适用于IE9和IE8兼容模式。但是当我在Windows XP上运行IE8中的相同代码时,我看不到任何间距。
我创建了一个jsfiddle示例。这在IE9中在blah之前添加间距,但在IE8中没有。
任何想法??
答案 0 :(得分:5)
来自:http://knockoutjs.com/documentation/style-binding.html
“如果要应用字体权重或文本修饰样式,或任何其他名称不是合法JavaScript标识符的样式(例如,因为它包含连字符),则必须使用JavaScript名称式“。
请改为尝试:
<div class="editor-field" data-bind="style : { 'marginLeft' : ($root.getHierarchyLevel($index()) * 30 + 'px')}">
答案 1 :(得分:2)
对于遇到相同问题的人,我不得不使用css绑定来使其工作。我们也可以直接添加“class”绑定作为attr的一部分。
答案 2 :(得分:0)
不得不改变,因为它在IE8中不起作用
<div data-bind="style: { display: $data.items.isLoading() ? 'flex' : 'none' }">
到
<div data-bind="css: { 'searchLoaderFlex' : $data.items.isLoading(), 'searchLoaderGone': !$data.items.isLoading() }">
或
<div data-bind="css: $data.items.isLoading() == true ? 'searchLoaderFlex' : 'searchLoaderGone'">