我的应用程序中有一些实例,如果存在变量并且工作正常,我将设置样式。
但是,我遇到了一个案例,我需要操纵该变量以始终存在,但其值为true或false。我已经尝试了一些东西,但是我尝试的所有内容似乎都在敲打,告诉我数据绑定项目不存在而且它不是布尔值。
我的数据绑定看起来没有任何修改,如果值不是假的话,它可以正常工作。
<div data-bind="style: {float: Show() ? 'right' : 'none', width: Show() ? '70%' : '100%'}">
我试过了
<div data-bind="style: {float: Show() != false ? 'right' : 'none', width: Show() != false ? '70%' : '100%'}">
两者都引用了false和没有
的引号我试过
<div data-bind="style: {float: Show() > 0 ? 'right' : 'none', width: Show() > 0 ? '70%' : '100%'}">
但这只是返回它不是布尔值
这是变量从视图中回来的样子
if(this.app.get('Wait').length === 0){
model.Show = false;
}else{
model.Show = ko.observable(JSON.parse(this.model.get('Show')));
}
任何帮助将不胜感激
答案 0 :(得分:1)
如果在视图中您总是处理该函数,那么请确保您处理的属性始终有效TRUE
或FALSE
我注意到您使用布尔值将Show
属性初始化为/:
if(this.app.get('Wait').length === 0){
model.Show = false; // HERE IS INCORRECT
}else{
model.Show = ko.observable(JSON.parse(this.model.get('Show')));
}
因此,尽量将Show
属性定义为可观察对象,然后通过以下方式更新可观察值:
model.Show = ko.observable(false); // Define with default value wheter TRUE or FALSE
if(this.app.get('Wait').length === 0)
{
model.Show(false);
}
else
{
model.Show(JSON.parse(this.model.get('Show')));
}
然后,在视图中,您可以像这样使用它:
// Check whether value is FALSE
<div data-bind="style: { float: ! Show() ? 'right' : 'none' }">
// Check whether value is TRUE
<div data-bind="style: { float: Show() ? 'right' : 'none' }">