Knockout.js条件绑定

jae*_*kie 2 javascript data-binding conditional knockout.js

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

例..

var ViewModel = {
   IsAdded = ko.observable(),
   AddedBy = ko.observable()   
}

当我显示它时..如果IsAddedBy为null或false,我不想显示AddedBy

像这样的东西......

<input type="text" data-bind="value: if (IsAdded != null && IsAdded) { AddedBy }"/>

我知道这不对,但是那样......

Tim*_*mes 7

我要做的就是这个;

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);
}
Run Code Online (Sandbox Code Playgroud)

那你的输入就是

<input type="text" data-bind="value: AddedByText" />
Run Code Online (Sandbox Code Playgroud)

这样,您将保持ViewModel中包含的逻辑并与HTML分离.