我有一些表示组织结构图的分层数据(某种树视图)。我想在表格中显示这个。我做了以下事情:
URL url = new URL("http://localhost:9090/ws/hello?wsdl");
//1st argument service URI, refer to wsdl document above
//2nd argument is service name, refer to wsdl document above
QName qname = new QName("http://ws.service.com/", "HelloWorldImplService");
Service service = Service.create(url, qname);
HelloWorld hellObj = service.getPort(HelloWorld.class);
vm.refined是一个对象数组,在控制器中定义,它具有单元的名称,其父级(如果有的话,null)和用于模拟折叠/展开的show标志。
toggleShow()的职责是......切换所选的显示标志(由于是父母而无论如何都会显示)及其子项。所以我做了类似的事情:
<tr ng-repeat="dat in vm.refined" ng-show="dat.show || dat.parent==null">
<td ng-click="vm.toggleShow(dat)" style="cursor: pointer">
<span ng-class="(dat.show===true || dat.parent===null) ? 'glyphicon glyphicon-chevron-right' : 'glyphicon glyphicon-chevron-down'" ></span>
{{dat.value.rbsName}}
</td>
<td>{{dat.parent}}</td> <!-- ignore these two tds -->
<td>{{dat.members}}</td> <!-- ignore these two tds -->
</tr>
事情就是当我点击td时,调用toggleShow但是我不会看到我应该看到的行。这似乎是范围问题和ng-repeat,但我无法找到解决方案。你能帮我吗?哦,还有别的,如果我把这部分写成指令,你觉得会更好吗?
答案 0 :(得分:0)
我认为你应该在html本身上切换那个标志
<强>标记强>
<tr ng-repeat="dat in vm.refined" ng-show="dat.show || dat.parent">
<td ng-click="dat.show=!dat.show" style="cursor: pointer">
<span ng-class="(dat.show || dat.parent) ? 'glyphicon glyphicon-chevron-right' : 'glyphicon glyphicon-chevron-down'" ></span>
{{dat.value.rbsName}}
</td>
<td>{{dat.parent}}</td> <!-- ignore these two tds -->
<td>{{dat.members}}</td> <!-- ignore these two tds -->
</tr>