【发布时间】:2014-11-11 19:51:44
【问题描述】:
我已经开始学习 Knockout,但遇到了一些麻烦。我有可观察的数组,它有一些按钮。我需要: 示例:
- 我单击第一个按钮“锁定”并看到第一个跨度“锁定”,隐藏第一个跨度“解锁”。这应该是一个“锁定”功能。
- 我单击第一个按钮“解锁”并隐藏第一个跨度“锁定”,可见第一个跨度“解锁”。这应该是一个“解锁”功能。
我单击第二个按钮“锁定”并看到第二个跨度“锁定”,隐藏第二个跨度“解锁”。这应该是一个“锁定”功能。
等
我不知道...怎么做?
请帮忙!
这是我的模型:
function newNames() {
var self = this;
self.btnClick = ko.observable(true);
self.newName = ko.observable();
self.names = ko.observableArray([
{id: 1, name: 'Name1'},
{id: 2, name: 'Name2'},
{id: 3, name: 'Name3'}
]);
self.lock = function () {
self.btnClick(false);
};
self.unlock = function () {
self.btnClick(true);
};
self.clickRename = function () {
for (var i = 0; i < self.names().length; i++) {
if (self.btnClick() == false) {
} else {
self.names.replace(self.names()[i], {
name: self.newName()
});
}
}
};
};
ko.applyBindings(new newNames());
这是html:
<div class="form-group">
<input type="text" class="form-control" data-bind="value: newName">
<button type="button" class="btn" data-bind="click: clickRename">
RENAME
</button>
</div>
<div class="group" data-bind="foreach: names">
<div class="form">
<!-- hidden: $parent.btnClick() == false, visible: $parent.btnClick() == true
$parent.btnClick() == false -->
<span id="span1" data-bind="visible: $parent.btnClick">unlock</span>
<span id="span2" data-bind="hidden: $parent.btnClick() == true, visible: $parent.btnClick() == false">lock</span>
<input type="text" class="form-control" data-bind="value: name">
<button type="button" class="btn" data-bind="click: $root.lock">
LOCK
</button>
<button type="button" class="btn" data-bind="click: $root.unlock">
UNLOCK
</button>
</div>
</div>
【问题讨论】:
标签: javascript html button knockout.js ko.observablearray