0

我第一次构建了一个相当重要的 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 来手动显示/隐藏嵌入内容的各个部分——这真的是获得我正在寻找的行为的惯用方式吗?

谢谢!

4

1 回答 1

0

在使用 ng-include 时,我总是将路径分配给控制器中的变量。

$scope.logoutlink ='views/logout.html'

在视图中,您可以指定为

<div ng-include="{{logoutlink}}"> </div>

发布一个 JSfiddle 链接会很有帮助。

于 2013-09-02T03:14:15.290 回答