Alma "Olamaz mülk 'nodeType ko çağırırken' boş" okuyun.applyBindings
Bu nakavt kodu var:
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());
Bu 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>
Örnek bir Nakavt internet sitesinde bulunduğu gibi aynı, ama ben çalıştırdığınızda, Krom Ateş Böceği bu mesaj verir:
Yakalanmamış eğer data: okuma özelliği 'nodeType' null
Bu script benim: bu hat için nakavt dosyası ve ilgili
ko.applyBindings(new TaskListViewModel());
Ve bu hata bu satırı (1766) nakavt üzerinde işaret:
var isElement = (nodeVerified.nodeType == 1);
Neyi yanlış yapıyorum?
CEVAP
Bu sorun yaratıldı önce HTML
bir öğe bağlamaya çalıştığım için olmuyordu.
Senaryomu HTML
(kafa) üstüne yüklendi ama HTML
benim kod (sadece kapanış gövde etiketinden önce) altında yüklü olması gerekiyordu.
İlginiz için teşekkürler James Allardice.
Olası bir çözüm defer="defer"
kullanıyor
<script src="script.js" type="text/javascript" defer="defer"></script>
Eğer komut herhangi bir belge içerik oluşturmak için gidiyor değilse bunu kullanın. Bu içerik için komut dosyası yüklemeden önce yüklenecek bekleyebilir tarayıcı söyler.
Umarım yardımcı olur.
Alma "Error loading MySQLdb modul...
Alma " tutmak;Yakalanmamış SyntaxE...
&Quot;farkı geri alma ne olur..."...
"olamaz Sembol R gidermek" A...
Gidermek " Nasıl NodeJS -; bul modül&q...