1

我一直在使用路由,我已经看到如何使用路由和视图模板更新 ng-view。但我遇到的问题是我正在做一个 REST 调用,这取决于我从我希望的响应中得到的结果用视图模板更新 DOM 的一部分,但我不想涉及路由。

有谁知道我该怎么做?或者任何例子都会很棒

提前致谢

4

2 回答 2

1

另一个答案。根据您在评论中的描述,听起来您希望有条件地显示 DOM 的一部分。

当您想有条件地显示部分 DOM 时,您有以下选择:

使用ng-showandng-hide指令。
根据 RESTful 调用返回的内容,您可以设置一个模型来识别需要显示的 DOM。一个例子:

<div ng-show="status">
    This text will be shown only when the status is truthy
</div>
<div ng-hide="status">
    This text will be shown only when the status is false.
</div>

在您的控制器内部,您可以status根据您的 RESTful 调用以及您希望在 RESTful 调用后显示的 DOM 的哪一部分,将其设置为 true 或 false。

您可以使用ng-switch指令
虽然ng-showandng-hide指令将有条件地显示您的 DOM 的内容,也就是说,任何人都可以简单地打开源文件并查看两者的内容,ng-switch指令将仅根据满足 swtich 的情况加载内容。一个例子:

<div ng-switch on="status">
    <div ng-switch-when="true">
        This text will be shown only when the status is truthy.
        Else this is completely hidden and cannot be seen even 
        when looking at the source.
    </div>
    <div ng-switch-when="false">
        This text will be shown only when the status is false.
        Else this is completely hidden and cannot be seen even 
        when looking at the source.
    </div>
</div>

当状态为真时显示第一个子 div,否则根本不显示。优于ng-showor的优点ng-hide是如果不满足情况,DOM 将不包含子元素。

于 2013-06-28T17:23:20.173 回答
0

$location.path()可以在这里使用。

因此,在您的父控制器中,您可以进行 REST 调用。一旦你有了数据,你就可以决定采取哪条路线。路由值进入path()函数。

例如,假设您的 REST 调用返回带有樱桃,您需要采用/foo路径(根据您$routeProvider将加载与该路由关联的模板)。然后,您可以编写以下内容:

$location.path('/foo');

它将加载 /foo 路径 -$routeProvider然后将负责加载与该路径关联的模板。

参考:$位置

于 2013-06-28T14:34:38.933 回答