Я следующий код и данные
{
"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();
});
}
Я знаю, что $ .get работает, потому что я могу видеть данные в формате JSON, возвращаясь, и я использовал функцию в 3-й параметр в $ .get, чтобы увидеть данные.
Когда я заменяю эту функцию свойством self.selectedJob, почему она не заполняется?
Благодаря
UPDATE: Вот мой 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>
При взгляде на Садись в консоли и имея часы на self.selectedJob.Job я получаю "неопределенные"
Можете ли вы разместить свой HTML-код? А также часть JS, которую вы называете 'ko.applyBindings'? – nemesv
@nemesv Обновлено с помощью HTML – Jon