gpt4 book ai didi

javascript - Angular JS : can we set resolve or promise on controller which did not have route defined?

转载 作者:行者123 更新时间:2023-11-27 23:19:26 26 4
gpt4 key购买 nike

我试图在 Controller 渲染之前从服务器获取一些数据。

我找到了许多关于 routeProvider 的答案。

但我的主要问题是我的 Controller 没有与任何路由绑定(bind)。

那么有什么办法可以实现这一点吗?

我通过以下方式拥有 Controller ...

<!-- HERE I WANT TO BLOCK RENDERING TILL DATA GET LOAD   -->
<AppController>
<ng-view>
</AppController>

最佳答案

听起来您正在寻找resolve,但是如果您没有为此 Controller 使用路由表,则您将没有此选项。为什么不直接在 Controller 中解析异步调用,并在回调内设置范围变量。这就是我对等待 Controller “渲染”的期望的解释,而通过路由表进行解析将等待 Controller 实例化。请注意以下几点...

module.controller('ctrl', function($scope, $http) {
$http.get('/uri').then(function(response) {
// set $scope variables here
});

console.log('executed first');
});

如果您的数据调用很长,您还可以设置一个变量来防止关联 View 呈现。这将阻止用户界面“跳舞”。观察上述示例的以下更改...

<div ng-controller="ctrl" ng-show="resolved"></div>
<小时/>
module.controller('ctrl', function($scope, $http) {

$http.get('/uri').then(function(response) {

$scope.resolved = true; // show rendering
});
});

JSFiddle Link - 简化的演示

JSFiddle Link - 演示ng-if

关于javascript - Angular JS : can we set resolve or promise on controller which did not have route defined?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35511674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com