Angularjs 为什么在ng交换机中加载模板?

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

在我的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">
            <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是从服务器请求/加载的,即使条件没有通过评估。