デモの目的で、私はプロジェクトトラッキングアプリケーションを書いています。プロジェクトにはタスク、人などがあり、それぞれにタイトルや説明などの関連プロパティがあります。ノックアウトマッピングでプロパティにアクセスできない
私は選択リストを作成し、各プロジェクトのタイトルプロパティを使用すると予想されました。代わりに、関数のテキストが入力されています。タイトルは観測可能なので、私はそれを仮定します。しかし、私は、私はここで
が正しく移入されていない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>
EDIT:
グリーンは正しかったです。コードは問題ありません。私は十分な情報を提供していませんでした。私はマッピングプラグイン0.5でKnockout 1.1.1を使用していました。これが問題の原因です。ノックアウトは現在v1.1.2です。私が1.1.2にアップグレードしたとき、それはうまくいった。良いキャッチグリーン。私は最初にフィドルでそれをチェックしたはずです。
注:現在、1.1.2を使用するための要件を示すドキュメントはありません。