0

私は 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 では追加されません。

何か案は??

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 に答える