이 녹아웃 코드가 있습니다.
function Task(data) {
this.title = ko.observable(data.title);
this.isDone = ko.observable(data.isDone);
}
function TaskListViewModel() {
// Data
var self = this;
self.tasks = ko.observableArray([]);
self.newTaskText = ko.observable();
self.incompleteTasks = ko.computed(function() {
return ko.utils.arrayFilter(self.tasks(), function(task) { return !task.isDone() });
});
// Operations
self.addTask = function() {
self.tasks.push(new Task({ title: this.newTaskText() }));
self.newTaskText("");
};
self.removeTask = function(task) { self.tasks.remove(task) };
}
ko.applyBindings(new TaskListViewModel());
이 HTML :
<head>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="knockout-2.0.0.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<h3>Tasks</h3>
<form data-bind="submit: addTask">
Add task: <input data-bind="value: newTaskText" placeholder="What needs to be done?" />
<button type="submit">Add</button>
</form>
<ul data-bind="foreach: tasks, visible: tasks().length > 0">
<li>
<input type="checkbox" data-bind="checked: isDone" />
<input data-bind="value: title, disable: isDone" />
<a href="#" data-bind="click: $parent.removeTask">Delete</a>
</li>
</ul>
You have <b data-bind="text: incompleteTasks().length"> </b> incomplete task(s)
<span data-bind="visible: incompleteTasks().length == 0"> - it's beer time!</span>
</body>
예제는 Knockout 웹 사이트에서 찾은 것과 동일하지만 실행하면 Chrome Fire Bug에 다음 메시지가 반환됩니다.
포착되지 않은 TypeError : null의 'nodeType'속성을 읽을 수 없습니다.
이것은 녹아웃 파일과 내 스크립트의 다음 줄과 관련이 있습니다.
ko.applyBindings(new TaskListViewModel());
그리고이 오류는 녹아웃에서이 줄 (1766)을 가리 킵니다.
var isElement = (nodeVerified.nodeType == 1);
내가 뭘 잘못하고 있죠?
그 오타로 인해 SyntaxError가 발생합니다. 오타를 수정하면 문제가 해결 되나요?
—
James Allardice 2012
예 ... 다른 오류가 발생하여 질문을 업데이트했습니다.
—
Gerep