Javascript 模型不可在命名空间外访问
我试图将我的knockout数组绑定到一个表,但无法到达javascript函数之外的模型 这是我的javascript代码Javascript 模型不可在命名空间外访问,javascript,knockout.js,Javascript,Knockout.js,我试图将我的knockout数组绑定到一个表,但无法到达javascript函数之外的模型 这是我的javascript代码 (function (conf, $, undefined) { var model = { menuRows : [], orderRows : [], menuDetails : null }; conf.getMenuRows = function () { $.get("/orderpackage/row", function
(function (conf, $, undefined) {
var model = { menuRows : [], orderRows : [], menuDetails : null };
conf.getMenuRows = function () {
$.get("/orderpackage/row", function (data) {
model.orderRows = data;
});
};
conf.getMenuRows();
ko.applyBindings(model);
}(window.conf = window.conf || {}, jQuery));
这是HTML
<table class="table table-hover table-bordered">
<thead>
<tr>
<th>Beskrivning</th>
</tr>
</thead>
<tbody data-bind="foreach: model.orderRows">
<tr>
<td data-bind="text: description"></td>
</tr>
</tbody>
</table>
涂鸦
找不到model.orderRows
无法理解我在这里做错了什么。您的模型没有使用可观测阵列功能。您将需要以下内容:
function Model() {
var self = this();
self.menuRows = ko.observableArray();
self.orderRows = ko.observableArray();
self.getMenuRows = function() {
$.get("/orderpackage/row", function (data) {
self.orderRows = ko.observableArray(data)
});
....
}
然后你可以打电话
(function (conf, $, undefined) {
var model = Model();
model.getMenuRows();
ko.applyBindings(model);
}(window.conf = window.conf || {}, jQuery));
然后,您应该能够像在HTML中那样进行绑定。
更多教程可在此处找到:
然后,如果要绑定到每个数组元素(例如描述)中的项,则需要为行创建附加的模型定义,并将api返回的数据解析为模型类型 我找到了一个好办法
(function (conf, $, undefined) {
var model = {
menuRows: ko.observableArray([]),
order: ko.observableArray([]),
menuDetails: ko.observable()
};
conf.getMenuRows = function () {
$.ajax({
url: "/orderpackage/row",
cache: false,
type: "GET",
datatype: "json",
contenttype: "application/json;utf8"
}).done(function (data) {
model.order(data.model);
});
};
conf.getMenuRows();
ko.applyBindings(model);
}(window.conf = window.conf || {}, jQuery));
这绝对是javascript代码,而不是java:)