Javascript 如何更改knockout.js中数组的值? 教育:
我打算仅当application.candidateMostRecentAcademic(数组)存在时才使列可见 但我还想为长度为0(不是null)的数组添加一个条件 所以当我试着去做的时候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
<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">