所以我在 URL /check
处有一个休息端点它返回序列化的用户数据,如下所示:
{
'username' : 'malikb',
'email': 'test@gmail.com',
'first_name': 'Malik',
'usertype': 'C'
}
我设计的端点为未登录的用户返回 401 状态代码,为已登录的用户返回 200 状态代码,效果很好。但是,我正在尝试使用 Angular 的 $http
推断状态代码和 usertype
的服务 key (如果有)。
本质上,我正在尝试使用<ng-include>
为登录的匿名用户呈现不同的导航栏,并根据用户类型为登录的用户呈现不同的导航栏。然而,我遇到的问题是请求是异步的。此外,ng-if
和src
我包含的 HTML 的属性似乎不断评估,从而发送数千个 HTTP 请求。有什么办法可以实现这样的功能吗?
最佳答案
避免在 HTML 模板中使用异步函数,因为它们会评估每个摘要周期。避免tangling concerns模型和 View 。 View 应该只渲染模型。 Controller 使用来自 View 的用户事件和来自其他地方的事件来修改模型。
app.controller('ctrl', function($http) {
var vm = this;
this.$onInit = function() {
vm.userData = { username: 'anonymous' };
$http.get("/check").then(function(response) {
vm.userData = response.data;
});
};
});
<user-navbar ng-hide="vm.userData.username == 'anonymous'></user-navbar>
<anon-navbar ng-show="vm.userData.username == 'anonymous'></anon-navbar>
关于javascript - Angular HTTP 请求渲染不同的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45315391/