Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript js条件绑定_Javascript_Data Binding_Knockout.js_Conditional - Fatal编程技术网

Javascript js条件绑定

Javascript js条件绑定,javascript,data-binding,knockout.js,conditional,Javascript,Data Binding,Knockout.js,Conditional,如何基于其他属性进行条件绑定 例如 var ViewModel = { IsAdded = ko.observable(), AddedBy = ko.observable() } var ViewModel={ IsAdded=ko.observable(), AddedBy=ko.可观察() } 当我展示它的时候。。如果IsAddedBy为null或false,我不想显示AddedBy 像这样的 <input type="text" data-bind="value:

如何基于其他属性进行条件绑定

例如

var ViewModel = { IsAdded = ko.observable(), AddedBy = ko.observable() } var ViewModel={ IsAdded=ko.observable(), AddedBy=ko.可观察() } 当我展示它的时候。。如果IsAddedBy为null或false,我不想显示AddedBy

像这样的

<input type="text" data-bind="value: if (IsAdded != null && IsAdded) { AddedBy }"/> <input type=“text”data bind=“value:if(IsAdded!=null&&IsAdded){AddedBy}”/>
我知道这是不对的,但像这样的事情…

我会做的就是这样

var ViewModel = function() {
    this.IsAdded = ko.observable('True');
    this.AddedBy = ko.observable('Test');
    this.AddedByText = ko.computed(function(){
        if ( this.AddedBy() != null && this.IsAdded() ) return this.AddedBy()
        return "";
    }, this);
}
那么你的意见就是

<input type="text" data-bind="value: AddedByText" />


这样,您就可以保留ViewModel中包含的逻辑,并将其与HTML分开。

这个问题很老了,但它可能有助于其他人查看

<input type="text" data-bind="value: IsAdded ? AddedBy : "" "/>


基本上,如果IsAdded不为null,则将
值设置为AddedBy,否则不执行任何操作

是要隐藏整个输入框,还是不填充它?如果要完全隐藏它,请查看绑定。如果您不想填充它,那么Tim的答案是正确的