在ng-switch中包含行为

时间:2013-09-02 01:34:11

标签: angularjs

我是第一次构建一个相当不重要的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来手动显示/隐藏已转换内容的各个部分 - 这是否真的是获取我正在寻找的行为的惯用方法?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

在视图中,您可以指定为

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

发布JSfiddle链接会很有帮助。