gpt4 book ai didi

json - 使用 Json 数据和 Knockout JS Viewmodel 填充 Bootstrap 选择

转载 作者:行者123 更新时间:2023-12-05 01:14:12 25 4
gpt4 key购买 nike

我在我的项目中使用 JSON 和 Bootstrap 控件。在我的 JSON 中,我从我的 sql 数据库 中检索数据。现在我想用我的数据填充我的选择控件,但它不起作用,我看不出我做错了什么,我已经搜索了很多 fiddle 来让它工作。

这是我的 JSON::

    var Projectss = function (data) {
var self = this;
self.ProjectName = ko.observable(data.ProjectName);
}

var ProjectModel = function (Projects) {
var self = this;
self.Projects = ko.observableArray(Projects);

$.ajax({
url: "CreateTask.aspx/GetProjectList",
// Current Page, Method
data: '{}',
// parameter map as JSON
type: "POST",
// data has to be POSTed
contentType: "application/json; charset=utf-8",
// posting JSON content
dataType: "JSON",
// type of data is JSON (must be upper case!)
timeout: 10000,
// AJAX timeout
success: function (Result) {
var MappedProjects =
$.map(Result.d,
function (item) { return new Projectss(item); });
self.Projects(MappedProjects);
},
error: function (xhr, status) {
alert(status + " - " + xhr.responseText);
}

});
};

$(document).ready(function () {
var VM = new ProjectModel();
ko.applyBindings(VM);
})

</script>

这是我试图填充我的选择的地方,这是在我的 td 中

div data-bind="foreach: Projects">
select data-bind="options: $root.MappedProjects, optionsText: ProjectName, value: 'ProjectName'">
/select>
/div>

最佳答案

使用 optionsText select binding option您需要将属性名称指定为字符串,因此您需要编写 'ProjectName'(注意单引号)。

然而 value binding需要属性本身,因此您需要编写 ProjectName(注意没有引号)。

所以固定绑定(bind)看起来像这样:

<div data-bind="foreach: Projects">
<select data-bind="options: $root.MappedProjects,
optionsText: 'ProjectName', value: ProjectName">
</select>
</div>

关于json - 使用 Json 数据和 Knockout JS Viewmodel 填充 Bootstrap 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14413346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com