2017-02-03 9 views
1

MVCコアWebアプリケーションでKnockoutを使用しています。私のUIには、いくつかの入力テキストフィールドがあります。たとえば、FirstName、LastName、FullNameなどです。ノックアウトJS Computed Observableもユーザー入力を受け取ります

私は、計算されたFullNameを観測可能にしています。ここに私の問題があります。 ケース1:特定の条件に基づいて、FirstNameとLastNameデータを使用してFullNameを計算します。 (これは例に示されている通常のケースです)。

ケース2:特定の条件に基づいて、ユーザーがFullNameテキストフィールドに入力できる入力を読みたいとします。誰かが私にそれを達成する方法を教えてもらえますか?

function AppViewModel() { 
this.firstName = ko.observable('Bob'); 
this.lastName = ko.observable('Smith'); 

if(somecondition) 
this.fullName = ko.computed(function() { 
    return this.firstName() + " " + this.lastName(); 
} else { 
    return somevalueEnterned in the text box 

}、this); }

答えて

1

ロジックを計算したものに入れることはできません。テキストボックスのバインドに別のオブザーバブルを使用し、条件に応じてどちらか一方を返します。

function AppViewModel() { 
    this.firstName = ko.observable('Bob'); 
    this.lastName = ko.observable('Smith'); 
    this.textBoxValue = ko.observable(''); 

    this.fullName = ko.computed(function() { 
    if(somecondition) 
     return this.firstName() + " " + this.lastName(); 
    } else { 
     return this.textBoxValue(); 
    } 
    }, this); 

} 
+0

Jason Spakeありがとうございました。それはハックのようなものだが、うまくいった。 –

関連する問題