敲除,评估可观察的可空性

Raf*_*aeu 1 knockout.js

如果我有一个带有一个可观察属性的简单ViewModel,如下所示:

var viewModel = function()
{
   var self = this;

   self.myProperty = ko.observable('');

   self.isValid = function(){
      if(!self.myProperty){
         return false;
      }
      return true;
   };
}
Run Code Online (Sandbox Code Playgroud)

如何正确验证observable并确保不是null/undefined或为空?仅当值不为null/undefined或''时才有效

nem*_*esv 6

Knockout observables是函数.您需要在没有参数的情况下调用它们来获取它们的基础值(这称为展开).

所以你只需要写下self.myProperty()你的if:

self.isValid = function(){
      if(!self.myProperty()){
         return false;
      }
      return true;
};
Run Code Online (Sandbox Code Playgroud)

您可以在文档中阅读有关可观察对象的更多信息.