У меня есть следующий шаблон для 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>
Шаблон привязывается к ObservableArray простых объектов javascript, используя привязку foreach:. Все свойства объекта привязаны правильно, кроме BackColor. BackColor — это свойство, а не функция, и его значение всегда является правильным цветом CSS (например, #556677); однако в DOM он связан просто как BackColor, а не как его значение.
Этот шаблон и привязка работали в Knockout.js 2.1, но я переношу его в Knockout.js 3.0, где он не работает.
Я попытался добавить функцию к объекту javascript, которая возвращает цвет CSS и привязать к ShowBackColor()
, но это вызывает ошибку javascript глубоко в нокауте.
Любые предложения по правильному связыванию этого цвета стиля фона?