2

他のプロパティに基づいて条件付きバインディングを行うにはどうすればよいですか?

例..

var ビューモデル = {
   IsAdded = ko.observable(),
   AddedBy = ko.observable()   
}

When I display it.. I don't want to show AddedBy if IsAddedBy is null or false

Something like this..

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

I know that isn't right, but something like that...

4

2 に答える 2

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);
}

次に、あなたの入力は

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

このようにして、ロジックを ViewModel 内に保持し、HTML から分離します。

于 2012-09-24T14:33:28.510 に答える
0

この質問は古いですが、他の誰かが探しているのを助けるかもしれません

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

基本的に、IsAdded が null でない場合は、valueAddedBy に設定し、それ以外の場合は何もしません

于 2017-08-09T17:32:26.487 に答える