编辑:回答我自己,错误是因为旧版本的淘汰赛,总是使用最新版本,并检查存在!淘汰赛给出无法解析在foreach循环中的绑定属性
我一直在使用knockout教程,并试图自己做一些事情,但是得到错误,即使我基本上有相同的代码。
<ul data-bind="foreach: tasks">
<li>
<input data-bind="value: title" />
</li>
</ul>
<script type="text/javascript">
(function() {
function Task(data) {
this.title = ko.observable(data.contentName);
}
function TaskListViewModel() {
// Data
var self = this;
self.tasks = ko.observableArray([]);
// Load initial state from server, convert it to Task instances, then populate self.tasks
$.getJSON('<%= Url.Action("GetContentList", "TranslateContentMenu") %>',
{
languageId: $('#LanguageIdNameValuePairs').val()
}, function (allData) {
var mappedTasks = $.map(allData, function (item) { return new Task(item) });
self.tasks(mappedTasks);
});
}
var test = new TaskListViewModel();
console.log(test);
ko.applyBindings(new TaskListViewModel());
}())
</script>
我打电话的服务,返回以下结果: [{ “内容识别”: “1b07790c”, “内容名”: “测试”},{ “内容识别”: “1b07790c”, “内容名”: “test”},{“contentId”:“1b07790c”,“contentName”:“test”}]
并且这是错误,直接从萤幕控制台输出: 错误:无法解析绑定属性。 消息:ReferenceError:标题未定义; 属性值:标题
您的代码适用于我:http://jsfiddle.net/vyshniakov/wKEn4/。我认为你没有发布的HTML标记有问题。你在什么绑定中遇到错误? –
我忘记了代码块中的ul标签,因此它不包含在内。我附加了错误信息,出于某种原因,它似乎不理解标题是一个Task对象,并且在ajax请求得到响应之前它失败了...... – ruffen
只是修复了错误,它是由于到老淘汰赛版本....注意自我:先检查版本! 非常感谢您的时间和帮助! – ruffen