【问题标题】:knockout.js/devExtreme unable to process css-bindingknockout.js/devExtreme 无法处理 css 绑定
【发布时间】:2014-07-09 23:56:25
【问题描述】:

我有一个 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>

然后在我的视图模型中:

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

非常感谢您的帮助!

【问题讨论】:

  • 你可以试试 data-bind="css: {selectedTile: $root.selectedTile}"
  • @GôTô - 做到了!您能否转换为答案,以便我标记为已回答且正确?干杯

标签: data-binding knockout.js phonejs devextreme


【解决方案1】:

要访问视图模型的根,请使用$root

试试这个:

data-bind="css: {selectedTile: $root.selectedTile}"

【讨论】:

  • 裤子,现在当我尝试通过 onclick 事件处理它时,绑定适用于每个图块。我想我真的需要更改我的数据源以使其对所选磁贴保持唯一性
  • selectedTile 听起来它应该包含一个 id 或一个对象而不是一个布尔值:)
  • 我已经很近了,但就是无法到达那里,有没有机会轻轻推一下?我假设您的意思是在视图模型中 selectedTile 应该包含一个 id 或对象?
  • 是的,然后将其与绑定中的当前对象进行比较,例如data-bind="css: {selectedTile: $root.selectedTile() == myTileId()}"
  • 该死的我可以发誓我早点尝试过,我想我一定有不同的感觉!非常感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2017-01-10
  • 2017-04-19
  • 2015-01-22
  • 2016-09-27
  • 1970-01-01
  • 2014-04-17
  • 2017-07-18
  • 2014-11-29
相关资源
最近更新 更多