編集:自分自身に答えました。エラーは古いバージョンのノックアウトが原因であり、常に最新バージョンを使用し、既存のものを確認してください!
私はノックアウトのチュートリアルに従っていて、自分で何かをしようとしましたが、基本的に同じコードを持っている場合でもエラーが発生します。
<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>
私が呼び出しているサービスは、次の結果を返します: [{"contentId":"1b07790c","contentName":"test"},{"contentId":"1b07790c","contentName":"test"},{"contentId ":"1b07790c","contentName":"test"}]
そして、これはfirebugコンソールから直接出たエラーです:エラー:バインディング属性を解析できません。メッセージ: ReferenceError: タイトルが定義されていません。属性値: 値: タイトル