将 Json 数组挖空映射到可观察数组得到错误
Knockout mapping Json Array to Observable Array get error
我在将 json 数组映射到可观察数组时遇到问题。
我收到一个错误"无法从未定义的属性'从 JSON'读取"
这是我链接的淘汰脚本:
淘汰赛-3.2.0.jsKNOCKOUT.mapping-latest.jsKNOCKOUT.mapping-latest.debug.js
我的 Json 数组如下所示:
[
{"$id":"1","GR":10},
{"$id":"2","GR":20},
{"$id":"3","GR":30},
{"$id":"4","GR":40},
{"$id":"5","GR":50},
{"$id":"6","GR":60},
{"$id":"7","GR":70},
{"$id":"8","GR":80}
]
这是我的 vieModel:
function FormViewModel() {
var self = this;
self.CpGrp = ko.observable([]);
self.GR = ko.observableArray();
$(document).ready(function (){
....
done: function (e, data) {
$(".progress").removeClass("progress-striped active"); // we're done
debugger;
var test
$.getJSON("/api/Points",
function (dataa) {
dataType: 'json'
test = ko.toJSON(dataa);
ko.mapping.fromJSON(test, {}, self)
}
)},
ko.applyBindings(new FormViewModel());
错误在哪里?
很可能你在脚本尝试使用它们之后包含了 ko 和 ko.mapping 的 js 文件。
查看您的页面和布局,并检查您的脚本是否在用于包含它们的<script>
标记之前使用 ko 和 ko.mapping(或捆绑呈现,如果您正在捆绑它们)。
您可以在浏览器中检查页面的源代码,或查看_layout.cshtml
以检查这是否是问题所在。请特别注意scripts
部分的呈现位置(如果它在布局中定义并在页面中使用)。
您还可以在脚本之前显式包含 ko 和 ko.mapping js 文件,并检查这是否使其正常工作。
如果这是问题所在,请按正确的顺序包含脚本,或者在加载完所有页面后运行脚本,例如在$(document).ready(function {/*your script here*/})
中使用它们。
相关文章:
- knockoutjs可观察数组
- 将js对象更改为使用嵌套的可观察数组敲除js视图模型
- 敲除:可观察数组没有被正确绑定——只有1个结果显示,而api返回6
- $scope$观察数组中的一个特定对象——Angular JS控制器
- 如何使用敲除映射将空值映射到空的可观察数组
- 无法观察Ember.js中的对象数组
- 以不同的方式对相同的可观察数组进行排序
- 如何在 Knockout.js 中更新可观察数组后立即使用 DOM 容器
- Knockout.js:如何根据可观察数组中的更改更改值
- 使用挖空.js如何刷新 Select 元素中的可观察数组
- 谷歌跟踪代码管理器使用什么模式来观察 de 'dataLayer' 数组
- 更新挖空中可观察数组中项目的属性
- 动态地向可观察数组中的特定项添加绑定(例如hasfocus)
- AngularJS:观察数组属性
- 对可观察数组foreach的更新删除了格式化knockoutjs
- 当通过Ajax成功回调更新可观察数组时,启用绑定中断
- 如何获取复选框值并将其插入到挖空中的可观察数组中
- 剔除不更新辅助表的可观察数组
- 如何让Knockout可观察数组与jQuery对话框一起工作
- 更改可观察数组会更改自定义绑定处理程序knockoutjs的可见性