我一直在使用路由,我已经看到如何使用路由和视图模板更新 ng-view。但我遇到的问题是我正在做一个 REST 调用,这取决于我从我希望的响应中得到的结果用视图模板更新 DOM 的一部分,但我不想涉及路由。
有谁知道我该怎么做?或者任何例子都会很棒
提前致谢
我一直在使用路由,我已经看到如何使用路由和视图模板更新 ng-view。但我遇到的问题是我正在做一个 REST 调用,这取决于我从我希望的响应中得到的结果用视图模板更新 DOM 的一部分,但我不想涉及路由。
有谁知道我该怎么做?或者任何例子都会很棒
提前致谢
另一个答案。根据您在评论中的描述,听起来您希望有条件地显示 DOM 的一部分。
当您想有条件地显示部分 DOM 时,您有以下选择:
使用ng-show
andng-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-show
andng-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-show
or的优点ng-hide
是如果不满足情况,DOM 将不包含子元素。
$location.path()
可以在这里使用。
因此,在您的父控制器中,您可以进行 REST 调用。一旦你有了数据,你就可以决定采取哪条路线。路由值进入path()
函数。
例如,假设您的 REST 调用返回带有樱桃,您需要采用/foo
路径(根据您$routeProvider
将加载与该路由关联的模板)。然后,您可以编写以下内容:
$location.path('/foo');
它将加载 /foo 路径 -$routeProvider
然后将负责加载与该路径关联的模板。
参考:$位置