在foreach中,我有一个span标记和一个textarea。每当我点击span标签时,我想切换textarea的可见性。敲除数据绑定foreach中的textarea
这部分工作,除了它切换在foreach内的textareas的所有的可见性,而不仅仅是针对特定项目的textarea。
这是我的代码。代码实际上并没有运行,但我认为这里有足够的东西让你看到我正在尝试做什么。
function MyViewModel(data) {
var self = this;
self.checkListItems = [1,2,3];
self.textAreaVisible = ko.observable(false);
self.toggleTextArea = function() {
self.textAreaVisible(!self.textAreaVisible());
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div data-bind="foreach: MyViewModel.checkListItems">
<span data-bind="click: toggleTextArea">Add Comments ></span>
<textarea data-bind="value: comments, visible: textAreaVisible"></textarea>
</div>
我发现这个链接这里http://knockoutjs.com/documentation/foreach-binding.html这听起来像也许我应该使用$数据不知何故,但我不知道怎么去,要在这方面的工作。
我很感谢您提供的任何帮助。
你观察到的,因为它是现在,会切换所有文字区域的知名度。这是你想要的结果吗? – pimbrouwers
@PimBrouwers不,它不是。我希望它只切换当前项目的可见性。因此,如果我点击视图上的第三个跨度,然后在视图上显示第三个textarea,并且不显示其他textarea。 – thMcClimon
完美,请参阅下面的答案!快乐的编码! – pimbrouwers