Angularjs 为什么在ng交换机中加载模板?
在我的html中,我有一段代码,它是表的一部分:Angularjs 为什么在ng交换机中加载模板?,angularjs,Angularjs,在我的html中,我有一段代码,它是表的一部分: <tr ng-show="isRowVisible(certificate.Id)" class="no-hover"> <td colspan="{{ columnChooser.getNumberOfVisibleColumns() }}" data-ng-switch="isRowVisible(certificate.Id)"> <div ng-switch-when="true"&g
<tr ng-show="isRowVisible(certificate.Id)" class="no-hover">
<td colspan="{{ columnChooser.getNumberOfVisibleColumns() }}" data-ng-switch="isRowVisible(certificate.Id)">
<div ng-switch-when="true">
<certificate-details-window
certificate-id="certificate.Id"
form-data="formData"
visible="isRowVisible(certificate.Id)"
close="toggleDetailsRow($event, certificate.Id)"
on-certificate-saved="certificateSaved(certificate)"
on-customer-saved="customerSaved(customer)">
</certificate-details-window>
</div>
</td>
</tr>
因此,当用户单击上面的行时,该行变为可见,因为isRowVisible(..)
函数返回true
加载页面时,isRowVisible()
函数始终返回false,这意味着不会呈现
标记。但是指令的模板是从服务器加载的
但是,此标记还包含其他自定义标记。令我惊讶的是,我在Chrome的网络标签中看到,定制标签的所有模板都是从服务器加载的。这怎么可能 您可以发布控制器和指令
证书详细信息窗口>
?这就是ng开关和ng if的工作方式。如果要显示/隐藏内容,请使用ng show。@MikeRobinson我认为在使用ng开关时,html会在条件通过评估时被解析…@Martijn条件通过评估时,html会从服务器请求。但是,这是一个异步操作,所以剩下的javascript将首先执行。@MikeRobinson'(…)计算时,HTML是从服务器请求的这正是我的观点。我看到HTML是从服务器请求/加载的,即使条件没有通过评估。