0

我正在使用 Knockout.js,并且我有以下绑定来添加间距(左边距)。

<div class="editor-field" data-bind="style : { 'margin-left' : ($root.getHierarchyLevel($index()) * 30 + 'px')}">

这适用于 IE9 和 IE8 兼容模式。但是当我在 Windows XP 上的 IE8 中运行相同的代码时,我看不到任何间距。

我创建了一个 jsfiddle 示例。这在 IE9 中的 blah 之前添加了间距,但在 IE8 中没有。

有任何想法吗??

4

3 回答 3

5

来自: http: //knockoutjs.com/documentation/style-binding.html

“如果您想应用字体粗细或文本装饰样式,或名称不是合法 JavaScript 标识符的任何其他样式(例如,因为它包含连字符),您必须使用该样式的 JavaScript 名称。”

试试这个:

<div class="editor-field" data-bind="style : { 'marginLeft' : ($root.getHierarchyLevel($index()) * 30 + 'px')}">

于 2013-02-19T20:56:05.747 回答
2

对于有同样问题的人,我不得不使用 css 绑定来让它工作。我们也不能直接添加“类”绑定作为 attr 的一部分。

于 2012-11-14T03:11:38.240 回答
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'">
于 2014-09-11T20:02:59.140 回答