Javascript 如何更改knockout.js中数组的值? 教育:

Javascript 如何更改knockout.js中数组的值? 教育:,javascript,html,arrays,knockout.js,Javascript,Html,Arrays,Knockout.js,我打算仅当application.candidateMostRecentAcademic(数组)存在时才使列可见 但我还想为长度为0(不是null)的数组添加一个条件 所以当我试着去做的时候 <div class="row"> <div class="col-md-6" data-bind="visible: application.candidateMostRecentAcademic" style="display:none;"> <sp

我打算仅当application.candidateMostRecentAcademic(数组)存在时才使列可见

但我还想为长度为0(不是null)的数组添加一个条件

所以当我试着去做的时候

<div class="row">
    <div class="col-md-6" data-bind="visible: application.candidateMostRecentAcademic" style="display:none;">
        <span>Education:</span>
             <!-- ko if: application.candidateMostRecentAcademic != null -->
               <!-- ko with: application.candidateMostRecentAcademic[0] -->
                 <span data-bind="text: $data.degreeTypeName"></span>
                 <span data-bind="text: $data.institutionName"></span>
                 <span data-bind="text: $data.dateToYear"></span>
               <!-- /ko -->
             <!-- /ko -->
    </div>
</div>

它给了我一个错误,说它不能访问空对象的“长度”。所以,我想做的是,我想将一个长度为0的数组设置为null,这样它就可以像null对象一样不可见


如何使用敲除数据绑定实现这一点?

在viewmodel中添加另一个名为isColumnVisible的成员,并使用此成员显示和隐藏列

<div class="col-md-6" data-bind="visible: application.candidateMostRecentAcademic.length != 0" style="display:none;">

如果我理解正确,如果数组不是
null
,并且
长度不等于
0
,您希望
If
语句通过吗

如果是这种情况,您可以在模板中执行此操作:

var viewModel={
    isColumnVisible=true;
    loadData:function(){
        // code to load data;
        // application= something
        if(application.candidateMostRecentAcademic ===null){
            this.isColumnVisible=false;
        }
    }
}


能否共享viewmodel?能否将viewmodel中的数组初始化为
application.candidateMostRecentAcademic=[]
以使其永远不会为空,但默认情况下,长度为0,这不会引发如您所述的错误。
<div class="col-md-6" data-bind="visible: application.candidateMostRecentAcademic && application.candidateMostRecentAcademic.length !== 0">