foreach:绑定不起作用 ko.mapping.fromJS 数据
foreach: binding not working ko.mapping.fromJS data
我正在尝试显示我使用 ko.mapping.fromJS 从 JSON 请求(见下文)获得的作业列表(使用 foreach),但它显示为空白。JSON 数据似乎已正确加载到可观察量数组中,但不会在 HTML 中呈现????
这实际上是移动Web应用程序(Jquery Mobile)的一部分,因此数据显示在第二页上,不确定这是否有所不同(我在开始时加载所有代码)
网页(简体)
<ul data-bind="foreach: JobsToday " >
<li> <span data-bind="text: job_id"> </span> </li>
</ul>
JSON 数据(简化)
[{"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>
JobsToday
可观察数组位于视图模型函数之外。由于您将表单绑定到DisplayModel
,因此不能绑定到。在函数内移动JobsToday
。
function DispatchModel(){
self = this; //cache the current context
self.JobsToday=ko.observableArray([]); // observable array holds the jobs for the current day
第二个问题是将JobsToday
设置为映射的数据。这是淘汰赛初学者的常见错误。您可以通过函数设置可观察量,而不是直接设置。这样会更好:
var mapped = ko.mapping.fromJS(jobsData); // get the jobs
self.JobsToday(mapped); //assign to observableArray
相关文章:
- 如何使用Knockout Mapping插件映射到来自服务器对象的数组,并进行一些计算
- knockoutjs undo ko.mapping.fromJS
- Knockout mapping用于ko.mapping.toJSON()的选项-方法
- foreach:绑定不起作用 ko.mapping.fromJS 数据
- Durandal ko mapping:映射 li 未在 DOM 中渲染
- 为什么一个ko.mapping.fromJS工作而另一个不工作
- Web Socket Mapping with Java
- 使用 ko.mapping.fromJS 更新异步 ajax 调用后可观察的淘汰表
- 如何使用 ko.mapping - Knockout 更新 Javascript 对象中的属性
- 无法处理绑定,请使用 ko.mapping.fromJS 将 JSON 数据推送到 ObservableArray
- Knockout maping.fromJS for observableArray from json object.
- 将新的 Observable 添加到由 ko.mapping.fromJS 映射的 ObservableArray
- 为什么 knockout.mapping 在某些数据结构上失败
- knockout.mapping下拉列表,获取选定值
- 如何在jasmine测试用例中模拟$(element).show和ko.mapping.fromJS
- KnockoutJS.Mapping.FromJS-可观察数组-删除不起作用
- 如何将ko.mapping.fromJS数组中的项复制到视图模型的另一个属性
- 传入ko.mapping.fromJS的复杂对象
- 如何使用ko.mapping.fromJS用Ajax调用的数据填充observable ray
- 用mapping.fromJS和template击倒js