我正在从事一个现有的项目,我还在学习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\"
然后
default-css
在呈现页面时不应用,但在触发事件后,css成功应用。如果我删除
||
只检查并离开
css: CSS
然后添加默认css,如下所示:
class="default-css, <other classes>"
然后,当呈现页面时,会应用该类(这并不奇怪),但每次都不会应用新样式,总的来说,这似乎不是正确的方法。
问题
有没有办法保持KO的
css
如果在开始时未设置属性,是否仍使用默认类?