次のコードとデータがあります
{
"Job": {
"JobName": null,
"JobNumber": 13,
"JobSize": 0,
"Status": "Finished",
"DateCreated": "/Date(1312551946280)/"
},
"Values": [
{
"Id": "8401",
"Status": "Good",
"JobNumber": 13
},
{
"Id": "8402",
"Status": "Bad",
"JobNumber": 13
}
]
}
function JobViewModel() {
var self = this;
self.jobs = ko.observableArray();
self.selectedJob = ko.observable();
self.history = ko.observableArray();
var app = Sammy(function () {
this.get('#/:jobNumber', function (context) {
$.get('/home/GetJobInfo/' + context.params.jobNumber, {}, self.selectedJob);
});
});
jQuery(function () {
app.run();
});
}
JSON データが戻ってくるのを見ることができるので、$.get が機能していることがわかります。また、$.get の 3 番目のパラメーターで関数を使用してデータを確認しました。
その関数を self.selectedJob プロパティに置き換えると、値が入力されないのはなぜですか?
ありがとう
更新:これが私のHTMLです
<!DOCTYPE html>
<html>
<head>
<link href="~/Content/main.css" rel="stylesheet" />
<title>Sentinel Web Data</title>
</head>
<body>
<div id="sidebar">
<ul data-bind="foreach: jobs">
<li><a data-bind="text: $data.JobName, attr: { href: '#/' + $data.JobNumber}"></a></li>
</ul>
</div>
<div id="job">
<span data-bind="text: JobNumber"></span>
</div>
<div class="clear"></div>
<div id="history" data-bind="with: history"></div>
<script src="~/Scripts/knockout-2.2.1.js"></script>
<script src="~/Scripts/jquery-1.4.4.min.js"></script>
<script src="~/Scripts/sammy-0.7.4.min.js"></script>
<script src="~/Scripts/JobViewModel.js"></script>
<script>
ko.applyBindings(new JobViewModel());
</script>
</body>
</html>
コンソールで get を見て、self.selectedJob.Job を監視すると、「未定義」と表示されます