この問題は混乱します。ノックアウトはko.applyBindings()
メソッドを使用してMVVMパターンを更新します。下のコードで私の機能を見ることができます。最初に私は空を作成しますvm私はgetJSON()
メソッドを介してデータを埋めるために他の関数を呼び出します。メソッドは正常に動作しています。機能から観測可能なノックアウトアクセス
var vm = {};
function GetData(){
vm=GetMockData();
LoadUserData();
LoadCategories();
LoadSkills();
return vm;
}
私の混乱は私の仕事は、ユーザの入力に応じて、この値を格納することで、ここから始まります。
<input data-bind='' placeholder="Enter your name"/>
トップのHTMLセクションで、その値を好きなものにバインドします。 GetMockData().obj.User.Name
。しかし、働いていない。
function GetMockData(){
var obj={
User:{
Name: ko.observable().extend({
required: true,
minLength: 2,
maxLength: 15
}),
Surname: "Fake Surname"
}
return obj;
}
applyBindings()
私は以下のコードセクションを呼び出します。
ko.applyBindings(new GetData());
私は以下の部分で混乱します。他の関数から呼び出された関数User.Name
を得るには、applyBindings()
から直接ではなく、別の関数からその部分に到達しているからです。 データバインド値をHTMLに書き込む方法を教えてください。
<input data-bind='' placeholder="Enter your name"/>
標準(クラス)パターンを使用して、ビューモデルを初期化するようにしてください。今では、グローバル変数を変更して返すので、 'new'キーワードの使用は意味がありません。それ以外の場合:バインディングコンテキストは 'vm'です。つまり、データバインドは' data-bind = "textInput:User.Name" ' – user3297291
です。ありがとうございました。 –