我第一次构建了一个相当重要的 Angular-js 应用程序,并试图建立一些关于如何完成工作的直觉。大多数事情都是有道理的,但有一个特别让我难过的模式 -
每当我在 ng-switch 中放置“include”样式指令时,它都会被忽略。我已经尝试了几乎所有我能想到的 ng-switch、ng-include 和 ng-transclude 样式来实现所需的行为,但无济于事。我没有注意到任何文件表明这是不允许的,也没有任何等效的模式样式。
这是我尝试做的一个例子:
<div ng-switch="is_logged_in()">
<div ng-switch-when="true">
logged-in:
<div ng-include="'views/logout.html'"> </div>
</div>
<div ng-switch-default>
not-logged-in
</div>
</div>
$scope.is_logged_in()
预期的行为是在返回 true时显示注销表单。
我看到的行为是显示“登录:”,但不包含。
我尝试了各种版本的 Angular-js。我检查了网络流量,发现包含实际上已被获取,但我无法让它工作。在尝试使用指令构建我自己的模板控制结构时,我有相同的行为清单。
我看到的大多数示例都避开了这一点,方法是在指令中使用 JS 来手动显示/隐藏嵌入内容的各个部分——这真的是获得我正在寻找的行为的惯用方式吗?
谢谢!