Я пытаюсь отобразить список (используя foreach) заданий, которые я получаю из запроса JSON (см. Ниже) с помощью ko.mapping.fromJS, но его появление пусто. Данные JSON, по-видимому, правильно загружены в массив наблюдаемых объектов, но не отображаются в HTML ????foreach: привязка не работает ko.mapping.fromJS data
Это фактически является частью мобильного веб-приложения (Jquery Mobile), так на второй странице появляются данные, не уверен, если это делает разницу (я загрузить весь код вверх в начале)
HTML (упрощенный)
<ul data-bind="foreach: JobsToday " >
<li> <span data-bind="text: job_id"> </span> </li>
</ul>
JSON DATA (упрощенный)
[{"job_id":"1753","driver_id":"23"},{"job_id":"1754","driver_id":"23"}]
JAVASCRIPT
<script type="text/javascript">
var JobsToday=ko.observableArray([]); // observable array holds the jobs for the current day
function DispatchModel(){
self = this; //cache the current context
self.userd_id= 0;
$.getJSON(controller_php_script+"/", {'action' : 'list_driver_jobs', 'driver_id' : self.user_id}, function(jobsData)
{
self.JobsModelArray= ko.mapping.fromJS(jobsData); // get the jobs
JobsToday =self.JobsModelArray; //assign to global observable
//print out the observablbles to make sure data is three
console.log(" JobsModelArray: "+ ko.toJSON(JobsToday));
});
} //end of DispatchModel
// Start of our main function
$(document).ready(function() {
var vm = new DispatchModel(); //create the Dispatch VMM
ko.applyBindings(vm); //knockout.js apply the binding
}); //end $(document).ready
</script>
Да, вы меня на правильном пути я консолидированы пару varaibles и обнаружили, что команда: ko.mapping.fromJS (jobsData, {}, self.JobsToday); // сопоставить данные драйвера пользователя с этой моделью сделал трюк ... да, помню, чтобы назначать объект объекту (assign_me) по сравнению с равными .. был ключом, спасибо. – user265505