当CSS绑定的属性为null时,使用默认类的KnockoutJS绑定

时间:2018-07-19 13:30:30

标签: javascript knockout-3.0

我正在研究一个现有项目,但我仍在学习KnockoutJS,所以也许我无法提供完整的描述,但实际情况是这样。

我有一个<div>元素,看起来像这样:

'<div data-bind="text: CSS || \'Default text\', css: CSS || \'default-css\'" class="some-classes"></div>'

我想要的CSS属性为Null时,将css绑定应用于默认情况下的默认类。而且由于用例是这样,以后我希望能够将绑定的css属性更改为其他值。

会发生什么

当需要重新绑定<div>

时,我具有处理事件的功能。
function RebindDiv(data, event) {
  var element = $(event.currentTarget).parent().prev('.<selector>').get(0);
  ko.applyBindingsToNode(element, { text: data.CSS(), css: data.CSS() });

  $(function () { $(element).change() }); //triggers the KO binding
}

因此,如果最初触发事件时是将css绑定到<div>中的,就像这样:css: CSS || \'default-css\",那么当页面位于呈现,但触发事件后,cs的应用成功。如果我取消default-css检查并仅保留||,然后添加默认的CSS像这样:css: CSS,则在呈现页面时,将应用该类(在此并不大惊喜),但是并非每次都应用新样式,总的来说,这似乎不是正确的方法。

问题 如果没有在开始时设置属性,是否有办法保持KO的class="default-css, <other classes>"绑定并仍使用默认类?

0 个答案:

没有答案