繁体   English   中英

从ajax提取数据到observableArray

[英]knockout push data from ajax to observableArray

我想将数据从ajax推送到淘汰的observableArray,但这给了我一个错误:

初始化可观察数组时传递的参数必须是数组,为null或未定义。

 efine(['uiComponent', 'ko', 'jquery'], function (Component, ko, jquery) { return Component.extend({ initialize: function () { this._super(); /* State and cities */ this.selectCity(); }, selectCity: function () { var myViewModel = {}; state = ko.observableArray([]); jquery.ajax({ url: 'http://127.0.0.1/magento/hamechio/region.php', type: "GET", dataType: "json", success: function(data) { myViewModel = data; state.push(data); } }); console.log(state); } }); }); 

据我所知,这条线应该改变。

 state = ko.observableArray([]);

对此

var state = ko.observableArray();

这是一个ajax作用域查询。

您可以使用“ var”。

像这样:

var state = ko.observableArray([]);

我是否可以建议阅读包含大量工作示例的文档: https : //knockoutjs.com/documentation/observableArrays.html

首先,您的视图模型是构建所有程序的对象。 该对象包含所有要显示的数据(作为可观察到的可观察属性“方法”)和要接收的命令(功能)。 因此,您需要定义视图模型以包含应用程序需要做的所有事情:

var viewModel = {
    //Bindings
    state = ko.observableArray();
}

现在,您可以写入viewModel.state()

如果数据是数组,并且您不想跟踪对数据项的更改:

viewModel.state(data);

或一次推一个:

data.foreach(function(el){ viewModel.state.push(el); });

如果要跟踪对每个项目的属性的更改,则需要使用第二种方法,并将每个元素转换为由ko.observable组成的对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM