我正在尝试根据 API 响应运行某些控制器。
从 routeProvider 配置开始:
.when('/objects/:objectId', {
controller: ControllerChooseCtrl,
template: '<div></div>'
})
例如,我们有这样的 API 响应格式 - {"available": true/false}
function ControllerChooseCtrl($scope, $routeParams){
$http('...', {object_id: $routeParams.objectId}).then(function(data){
$scope.resolved_data = data;
if (data.available){
// run AvaibleController
// with 'available-template.html'
} else {
// run NotAvailableController
// with 'not-available-template.html'
}
})
}
.
function AvaibleController($scope){
// use resolved_data from parent controller
}
function NotAvaibleController($scope){
// use resolved_data from parent controller
}
所以,至少有两个问题:
- 如何根据 API 响应运行特定的控制器。
- 如何将 API 响应传递给可执行控制器,以避免请求重复。