我正在研究一个现有项目,但我仍在学习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>"
绑定并仍使用默认类?