angular resolve
时间: 2023-06-22 11:20:42 浏览: 51
在 AngularJS 中,resolve 是一个路由的属性,它用于在路由切换之前预先加载数据,并将它们注入到 controller 中。resolve 可以是一个对象或一个函数。
如果是一个对象,那么对象的属性名表示注入到 controller 中的依赖项的名称,属性值是一个返回 promise 的函数。当所有的 promise 都被解决时,它们的结果会被注入到 controller 中,可以在 controller 中使用它们。
如果是一个函数,那么该函数接收 $q 和 $route 服务作为参数,并返回一个对象,该对象的属性名表示注入到 controller 中的依赖项的名称,属性值是一个返回 promise 的函数。
下面是一个使用 resolve 的示例:
```
angular.module('myApp', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/myRoute', {
templateUrl: 'myRoute.html',
controller: 'MyController',
resolve: {
myData: function($http) {
return $http.get('/api/myData');
}
}
});
}])
.controller('MyController', ['$scope', 'myData', function($scope, myData) {
$scope.myData = myData;
}]);
```
在这个示例中,我们定义了一个名为 myData 的 resolve,它使用 $http 服务获取数据。当路由切换到 /myRoute 时,resolve 会先获取数据,然后将数据注入到 MyController 中,并将数据绑定到 $scope.myData 上。