Knockout.js knockoutjs样式没有绑定

Knockout.js knockoutjs样式没有绑定,knockout.js,knockout-3.0,Knockout.js,Knockout 3.0,我为knockout.js提供了以下模板: <script type="text/html" id="feed-template"> <li data-bind="style: { backgroundColor: BackColor, backgroundImage: 'none' }" > <a style="text-shadow: none" href="#" data-bind="

我为knockout.js提供了以下模板:

        <script type="text/html" id="feed-template">
            <li data-bind="style: { backgroundColor: BackColor, backgroundImage: 'none' }"   >
                <a style="text-shadow: none" href="#" data-bind="click: ItemClicked">
                    <h1 style="WHITE-SPACE: normal; FONT-WEIGHT: bold" data-bind="text: PatientName"></h1>
                    <p style='white-space: normal;' data-bind="text: Description"></p>
                    <p style='white-space: normal;' data-bind="text: FeedEvent"></p>
                    <p style='white-space: normal;' data-bind="text: FeedTimeString"></p>
                    <span class="ui-li-count" data-bind="text: DisplayCount"></span>
                </a>
                <!-- ko if: ShowDelete -->
                    <a style="background: none; text-shadow: none;" href="#ConfirmUnfollowPopup" data-transition="pop" data-rel="popup" data-position-to="window" data-icon="delete" data-role="button"  data-inline="true" data-theme="b" data-bind="click: UnfollowClicked"></a>
                <!-- /ko -->
            </li>
        </script>
使用foreach:binding将模板绑定到普通javascript对象的ObservalArray。除背景色外,所有对象属性都已正确绑定。BackColor是一个属性,而不是一个函数,它的值始终是正确的CSS颜色,例如556677;但是,它在DOM中仅作为背景色绑定,而不是其值

这个模板和绑定在knockout.js2.1中起作用,但我将它迁移到knockout.js3.0,在那里它不起作用

我尝试向javascript对象添加一个返回CSS颜色的函数,并绑定到ShowBackColor,但这会在敲除中产生一个javascript错误


关于如何正确绑定此背景样式颜色,有什么建议吗?

尝试在背景颜色周围加引号

data-bind="style: { 'backgroundColor': BackColor, 'backgroundImage': 'none' }"

您可以使用attr绑定进行欺骗。这是一个解决方法,不是解决方案我有同样的问题:

data-bind="attr: { style: 'background-color: ' + BackColor() + '; background-image: none' }"

不,没什么区别。背景色仍然没有绑定。可以显示视图模型吗?您的另一个选择是使用CSS绑定。这可能是最简单的解决方案。另一个问题是,背景色来自模板的父绑定。也许它应该是$parent.BackColor?如果没有看到VM和绑定,很难说。最初的作者没有使用viewmodel,我希望我有时间正确地重写。但是,BackColor是被绑定对象的属性,ItemClicked、PatientName、Description、FeedEvent、FeedTimeString、DisplayCount和ShowDelete也是如此。所有其他的都正确绑定。另外,正如最初提到的,BackColor在knockout.js 2.1中正确绑定;它只在3.0中失败。你说的不是viewmodel本身是什么意思?你的意思是没有可观察的东西吗?你能提供你的视图模型吗?