其实我有一个这样的处理程序
ko.bindingHandlers.setElementVisibility = {
init : function ( element, valueAccessor, allBindingsAccessor, viewModel, bindingContext ) {
var val = valueAccessor ( );
if ( val !== undefined && val !== null && val !== '' ) {
$ ( element ).addClass ( 'show' );
return;
}
$ ( element ).attr ( 'class', 'hidden' );
}
};
然后在视图上我有
<span data-bind="text: Name, setElementVisibility: Name">
我将对所有可观察到的var进行检查,将其保存到ViewModel中,而不是在View中编写函数。
那可能吗?
我可以扩展可观察对象吗?
最佳答案
首先,可以使用css绑定
<span data-bind="text: Name, css: Name() ? 'show' : 'hidden'"></span>
另外,您可以将两个绑定合并为一个:
ko.bindingHandlers.showIfPresent = {
init : function ( element, valueAccessor, allBindingsAccessor, viewModel, bindingContext ) {
var val = valueAccessor();
ko.applyBindingsToNode(element, {text : val, css : val() ? 'show' : 'hidden'})
}
};
视图
<span data-bind="showIfPresent : Name"></span>
关于javascript - 应用标准业务代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22402808/