击倒阵列按钮一个功能
Knockout Array buttons one Function
我已经开始学习淘汰赛了,遇到了一些麻烦。我有可观察的数组,它有一些按钮。我需要:示例:
- 我点击第一个按钮"锁定"和可见的第一个跨度"锁定",隐藏第一个跨度的"解锁"。这应该是一个函数"锁"
- 我点击第一个按钮"解锁"并隐藏第一个跨度"锁定",第一个跨度可见"解锁"。这应该是一个功能"解锁"
-
我点击第二个按钮"锁定"和可见的第二个跨度"锁定",隐藏第二个跨距"解锁"。这应该是一个函数"锁"。
-
等等。
我不知道。。。怎么做?
救命!
这是我的型号:
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>
您可以试试这个。无论如何,您可以改进代码,在对象数组上添加一个带有按钮标签的计算属性。
我已经将一个值传递给单击按钮,在该按钮中设置相应的新属性锁定,从而显示/隐藏相应的跨度。
<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">
<span id="span1" data-bind="visible: lock() == true">unlock</span>
<span id="span2" data-bind="visible: lock() == false">lock</span>
<input type="text" class="form-control" data-bind="value: name">
<button type="button" class="btn" data-bind="click: function(data, event) { $parent.lock(!lock(), data, event); }">
<span data-bind="visible: lock() == false">LOCK</span>
<span data-bind="visible: lock() == true">UN-LOCK</span>
</button>
</div>
</div>
<script>
function newNames() {
var self = this;
self.btnClick = ko.observable(true);
self.newName = ko.observable();
self.names = ko.observableArray([
{ id: 1, name: 'Name1', lock: ko.observable(false) },
{ id: 2, name: 'Name2', lock: ko.observable(false) },
{ id: 3, name: 'Name3', lock: ko.observable(false) }
]);
self.lock = function (value, data, event) {
console.log(data);
data.lock(value);
};
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());
</script>
相关文章:
- 按下一个HTML按钮,该按钮使用一个功能在同一个新窗口中打开URL
- 使用单选按钮参考另一个功能
- 流星:移除不是一个功能
- 浏览器同步摄像头加速视频播放不是一个功能
- 谷歌应用程序脚本搜索UI下一个和上一个功能
- 如何使用上一个/下一个功能循环数组中的图像
- 是否可以设置一个功能“;联系我们”;页面使用HTML/CSS
- 只有在前一个功能成功完成的情况下,我才能正确地启动此功能
- 如果另一个功能完成,则执行该功能,而不是何时
- 单击和键控操作可以完成一个功能
- 如果选中单选按钮,如何转到另一个功能?(Javascript)
- 你能在javascript中命名一个功能点击吗?
- 使用 firebase 获取$add angular 应用程序不是一个功能
- 在按钮单击中将一个功能更改为第二个功能
- 在谷歌地图自动补充之后启动一个功能
- 单击圆圈时启动一个功能 - 传单
- 这是一个功能声明、表达式和对象吗?
- 谷歌图表:嗨不是一个功能
- 灯箱“下一个”功能仍然显示已隐藏的元素 (li) 显示:无;
- 有一个功能可以将字符串很好地缩短为一个、两个或三个字母