题
出于演示目的,我正在编写一个项目跟踪应用程序。项目具有任务,人员等,每个项目都具有标题和描述等相关属性。
我创建了一个选择列表,并期望将其带入每个项目的标题属性。相反,它是用函数文本填充的。我认为这是因为标题是可观察的。但是我不知道如何要求价值...
这是无法正确填充的HTML:
<select data-bind="options: projects,
optionsText: 'title',
optionsValue: 'id',
value: selectedList.id()">
</select>
这是包含JSON的JavaScript(使用JSON.NET注入ASP.NET MVC中)。格式应该是相同的,尽管我试图对其进行消毒,因此请原谅任何缺失的括号。
<script type="text/javascript">
var initialData = [
{
"id": "2150980c-1033-4b20-a58b-9e5400abb651",
"title": "project1",
"description": "project 1 description",
"persons": [
{
"id": "1f6f531c-bafa-4fe8-aac8-9e5400abb65a",
"firstname": "p1_fname"
},
{
"id": "1f6f531c-bafa-4fe8-aac8-9e5400abb65a",
"firstname": "p1_fname"
}],
"tasks": [
{
"id": "1f6f531c-bafa-4fe8-aac8-9e5400abb65a",
"title": "task1"
},
{
"id": "1f6f531c-bafa-4fe8-aac8-9e5400abb65a",
"title": "task2"
}]
},
{
"id": "54d4dc7c-0928-4c05-93a2-9e5400abb6a0",
"title": "project2",
"description": "project 2 description",
"persons": [
{
"id": "1f6f531c-bafa-4fe8-aac8-9e5400abb65a",
"firstname": "p1_fname"
},
{
"id": "1f6f531c-bafa-4fe8-aac8-9e5400abb65a",
"firstname": "p1_fname"
}],
"tasks": []
}
];
var viewModel = {
projects: ko.mapping.fromJS(initialData)
};
viewModel.selectedList = {
id: ko.observable("")
};
if(viewModel.projects().length > 0)
viewModel.selectedList.id(viewModel.projects()[0].id());
ko.applyBindings(viewModel);
</script>
编辑:
格林是对的。代码很好。我没有提供足够的信息。我使用的是敲除1.1.1,映射插件为0.5。这就是导致问题的原因。淘汰赛目前在v1.1.2上。当我升级到1.1.2时,它起作用了。好捕获绿色。我应该先用小提琴检查。
注意:看起来当前没有任何文档指示使用1.1.2的要求。
解决方案
我看不到代码的问题。小提琴表明,选择的选择正确填充了项目标题: http://jsfiddle.net/greenlaw110/tkqqqb/3/
不隶属于 StackOverflow