首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当单击时,切换可见性在敲除前绑定

当单击时,切换可见性在敲除前绑定
EN

Stack Overflow用户
提问于 2014-11-05 04:49:32
回答 1查看 1.6K关注 0票数 1

给出了一个敲除的前景绑定语句

代码语言:javascript
运行
复制
 <div data-bind="foreach: Tests">
      <a><span data-bind="text: testName"></span></a>
      <table>
      <!--table contents -->
      </table>
 </div>

这将生成多个div元素--每个元素都包含自己的标记和表。当我单击超链接时,它相应的表的可见性必须切换。我无法将测试的内容作为来自服务器的内容进行操作。我怎样才能得到这种效果?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-05 05:05:02

因为测试是一个observableArray,所以只需在视图模型中迭代它,并添加一个属性来切换可见性-

代码语言:javascript
运行
复制
 <div data-bind="foreach: Tests">
      <a><span data-bind="text: testName, click: toggleIsExpanded"></span></a>
      <table data-bind="visible: isExpanded">
      </table>
 </div>

在你的ViewModel里-

代码语言:javascript
运行
复制
function viewModel() {
    self.Tests = ko.observableArray(yourData);
    ko.utils.arrayForEach(self.Tests(), function (test) {
        if (!test.isExpanded) {
            test.isExpanded = ko.observable();
        }
    }
    self.toggleIsExpanded = function (sender) {
        sender.isExpanded(!self.isExpanded());
    }
}

现在,当您单击链接名称时,它将切换isExpanded属性,这将根据isExpanded的值使表可见。如果希望防止每次将所有内容加载到DOM中,也可以使用If绑定而不是可见的绑定。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26749893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档