これは初心者の質問であり、言うまでもなく、私はノックアウト js に非常に慣れていません。私がやろうとしているのは、サーバーから単一の栽培者 (名前、会社、住所) の詳細を取得し、それを Web ページに表示することだけです。jQuery モバイルを使用しているため、 $(document).bind('pageinit', function () を使用しています。
今私のコードは次のとおりです。
<h3><span data-bind="text: Name"></span></h3>
<span data-bind="text: Company"></span><br />
<span data-bind="text: Address"></span>
<script type="text/javascript">
$(document).bind('pageinit', function () {
function MyGrowerModel() {
//this.Name = "My Name";
//this.Company = "My Company";
//this.Address = "My Address";
//Load initial state from server, convert it to Task instances, then opulate self.tasks
$.getJSON("Grower/GetGrower", function (allData) {
this.Name = allData.Name;
this.Company = allData.Company;
this.Address = allData.Address;
alert(allData.Name); //works!
});
}
ko.applyBindings(new MyGrowerModel());
});
</script>
「バインディングを解析できません。メッセージ: ReferenceError: 名前が定義されていません。バインディング値: 名前
Name、Company、および Address は getJSON 関数内でスコープされるため、これは理にかなっています。だから、私の質問は、これらの変数をどこで宣言し、それらの ViewModel データを更新する方法ですか?
マッピング プラグインを使用したくありません。
どんな助けでも大歓迎です。