ノックアウトマッピングプロパティへのアクセスを提供しません
-
10-10-2019 - |
質問
デモの目的のために、プロジェクト追跡アプリを書いています。プロジェクトにはタスク、人などがあり、それぞれにタイトルや説明などの関連するプロパティがあります。
選択リストを作成し、各プロジェクトのタイトルプロパティが入力されることを期待していました。代わりに、関数のテキストが入力されています。タイトルが観察可能だからだと思います。しかし、私はどうやって価値を求めることができるかわかりません...
これが正しく居住していないHTMLです。
<select data-bind="options: projects,
optionsText: 'title',
optionsValue: 'id',
value: selectedList.id()">
</select>
JSONを含むJavaScriptは次のとおりです(ASP.NET MVCでJSON.NETを使用して注入されています)。フォーマットは同じでなければなりませんが、私はそれを消毒しようとしましたが、欠落しているブラケットを許してください。
<script type="text/javascript">
var initialData = [
{
"id": "2150980c-1033-4b20-a58b-9e5400abb651",
"title": "project1",
"description": "project 1 description",
"persons": [
{
"id": "1f6f531c-bafa-4fe8-aac8-9e5400abb65a",
"firstname": "p1_fname"
},
{
"id": "1f6f531c-bafa-4fe8-aac8-9e5400abb65a",
"firstname": "p1_fname"
}],
"tasks": [
{
"id": "1f6f531c-bafa-4fe8-aac8-9e5400abb65a",
"title": "task1"
},
{
"id": "1f6f531c-bafa-4fe8-aac8-9e5400abb65a",
"title": "task2"
}]
},
{
"id": "54d4dc7c-0928-4c05-93a2-9e5400abb6a0",
"title": "project2",
"description": "project 2 description",
"persons": [
{
"id": "1f6f531c-bafa-4fe8-aac8-9e5400abb65a",
"firstname": "p1_fname"
},
{
"id": "1f6f531c-bafa-4fe8-aac8-9e5400abb65a",
"firstname": "p1_fname"
}],
"tasks": []
}
];
var viewModel = {
projects: ko.mapping.fromJS(initialData)
};
viewModel.selectedList = {
id: ko.observable("")
};
if(viewModel.projects().length > 0)
viewModel.selectedList.id(viewModel.projects()[0].id());
ko.applyBindings(viewModel);
</script>
編集:
緑は正しかった。コードは問題ありません。私は十分な情報を提供していませんでした。マッピングプラグイン0.5でノックアウト1.1.1を使用していました。これが問題を引き起こしたものです。ノックアウトは現在v1.1.2にあります。 1.1.2にアップグレードしたとき、それはうまくいきました。良いキャッチグリーン。最初にフィドルでチェックする必要がありました。
注:現在、1.1.2を使用する必要があることを示すドキュメントがあるようには見えません。
解決
コードに問題はありません。フィドルは、選択にプロジェクトタイトルが正しく入力されていることを示しています。 http://jsfiddle.net/greenlaw110/tkqb/3/
所属していません StackOverflow