knockout.js/devExtreme не может обработать css-привязку
У меня есть шаблон dxTileView, который связан с данными, поступающими с сервера. Затем в шаблоне я хочу добавить привязку css, которая добавляет класс при нажатии на плитку следующим образом...
<div data-bind="dxTileView: {itemClickAction:assignProject, dataSource:quickBooking}">
<div data-options="dxTemplate : { name:'item' }" data-bind="css: {selectedTile: selectedTile}">
<h4 data-bind="text: blah"></h4>
<p data-bind="text: blah"></p>
</div>
</div>
И тогда в viewmodel у меня есть:
var viewModel = {
selectedTile: ko.observable(false),
blah: blah}
И сообщение об ошибке:
Uncaught ReferenceError: Unable to process binding "css: function (){return {selectedTile:selectedTile} }"
Message: selectedTile is not defined
Я попробовал несколько вариантов моих привязок следующим образом, но ни одна из них не работает:
data-bind="css: {selectedTile: viewModel.selectedTile}"//error: viewModel not defined
data-bind="css: {selectedTile: viewModel.selectedTile()}"
data-bind="css: {selectedTile: true}" //this works,was just for testing
data-bind="css: {selectedTile: selectedTile(false)}"//etc etc etc
Заранее большое спасибо за любую помощь!
1 ответ
Решение
Чтобы получить доступ к корню модели представления, используйте $root
,
Попробуй это:
data-bind="css: {selectedTile: $root.selectedTile}"