使用敲除 foreach 的数据绑定不起作用
data binding with knockout foreach is not working
我是淘汰赛的新手,正在尝试使用 observableArray
将数据绑定到 foreach
循环
下面是我的 JS 和 HTML 代码,有人可以看看它并帮助我解决我哪里错了吗?我的主要问题是 foreach
没有按预期工作
JS代码
define(function(require) {
var app = require('durandal/app');
var ko = require('knockout');
var todoList = ko.observableArray([new Todo("test")]);
return {
todoName: ko.observable(),
createTodo: function() {
todoList.push(new Todo(this.todoName()));
console.log(todoList().length);
}
};
function Todo(name) {
return {
todoName: ko.observable(name)
};
}
});
我的Html代码
<section>
<h2>Create Todo</h2>
<form class="form-inline">
<fieldset>
<label>Name</label>
<input type="text" data-bind="value: todoName, valueUpdate: 'afterkeydown'" />
<button type="submit" class="btn" data-bind="click: createTodo, enable: todoName">Click Me</button>
</fieldset>
</form>
</section>
<div class="row" data-bind="foreach: todoList">
<div class="col-md-12">
<label data-bind="text: todoName"></label>
</div>
</div>
Knockout 正在寻找您在 ko.applyBindings
中使用的对象内部的 todoList
。不要创建变量,而是将其设为要返回的对象的 属性。
这是一个工作片段:
function Todo(name) {
return {
todoName: ko.observable(name)
};
}
function TodoViewModel() {
return {
todoList: ko.observableArray([new Todo("test")]),
todoName: ko.observable(),
createTodo: function() {
this.todoList.push(new Todo(this.todoName()));
console.log(this.todoList().length);
}
};
}
ko.applyBindings(TodoViewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<section>
<h2>Create Todo</h2>
<form class="form-inline">
<fieldset>
<label>Name</label>
<input type="text" data-bind="value: todoName, valueUpdate: 'afterkeydown'" />
<button type="submit" class="btn" data-bind="click: createTodo, enable: todoName">Click Me</button>
</fieldset>
</form>
</section>
<div class="row" data-bind="foreach: todoList">
<div class="col-md-12">
<label data-bind="text: todoName"></label>
</div>
</div>
我是淘汰赛的新手,正在尝试使用 observableArray
foreach
循环
下面是我的 JS 和 HTML 代码,有人可以看看它并帮助我解决我哪里错了吗?我的主要问题是 foreach
没有按预期工作
JS代码
define(function(require) {
var app = require('durandal/app');
var ko = require('knockout');
var todoList = ko.observableArray([new Todo("test")]);
return {
todoName: ko.observable(),
createTodo: function() {
todoList.push(new Todo(this.todoName()));
console.log(todoList().length);
}
};
function Todo(name) {
return {
todoName: ko.observable(name)
};
}
});
我的Html代码
<section>
<h2>Create Todo</h2>
<form class="form-inline">
<fieldset>
<label>Name</label>
<input type="text" data-bind="value: todoName, valueUpdate: 'afterkeydown'" />
<button type="submit" class="btn" data-bind="click: createTodo, enable: todoName">Click Me</button>
</fieldset>
</form>
</section>
<div class="row" data-bind="foreach: todoList">
<div class="col-md-12">
<label data-bind="text: todoName"></label>
</div>
</div>
Knockout 正在寻找您在 ko.applyBindings
中使用的对象内部的 todoList
。不要创建变量,而是将其设为要返回的对象的 属性。
这是一个工作片段:
function Todo(name) {
return {
todoName: ko.observable(name)
};
}
function TodoViewModel() {
return {
todoList: ko.observableArray([new Todo("test")]),
todoName: ko.observable(),
createTodo: function() {
this.todoList.push(new Todo(this.todoName()));
console.log(this.todoList().length);
}
};
}
ko.applyBindings(TodoViewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<section>
<h2>Create Todo</h2>
<form class="form-inline">
<fieldset>
<label>Name</label>
<input type="text" data-bind="value: todoName, valueUpdate: 'afterkeydown'" />
<button type="submit" class="btn" data-bind="click: createTodo, enable: todoName">Click Me</button>
</fieldset>
</form>
</section>
<div class="row" data-bind="foreach: todoList">
<div class="col-md-12">
<label data-bind="text: todoName"></label>
</div>
</div>