angularjs - Angular Js 解决方法的问题

标签 angularjs angular-ui-router promise angular-ui angular-promise

嗨,我有一个如下所示的 $stateProvider。

$stateProvider .state('team.details', {
  url: '/:teamId',
  views: {
    '@': {
      controller: 'teamDetailsCtrl',
      templateUrl: 'src/modules/team/details/teamDetails.html',
      resolve: {
        user: function ($stateParams, TeamResource) {
          return TeamResource.get({ teamid: $stateParams.teamId }).$promise;
        }

TeamResource.get 正在调用休息 api,如果数据是从休息 api 发送的(数据库中存在 teamid),则一切正常。但如果数据不存在,那么我必须将其路由到“家”。我怎样才能实现它?

最佳答案

您可以解决这个问题,如果有数据,则使用链式 promise 返回该数据,否则将其重定向到不同的状态。

代码

resolve: {
  user: function($stateParams, TeamResource, $state) {
    return TeamResource.get({
      teamid: $stateParams.teamId
    }).$promise.then(function(data) {
      if (!data.length > 0) { //here might be you need to use something else instead of data
        $state.go('home')
        return
      } else {
        return data;
      }
    });
  }

关于angularjs - Angular Js 解决方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30594129/

相关文章:

javascript - 如何将值从 ng-click 传递到 ng-model?

javascript - 当网络显示 200 时处理 404

angularjs - UI 路由器 $stateparams 未在 $state.go() 中注册

javascript - 如何访问 .then() 链中先前的 Promise 结果?

javascript - 我如何处理错误然后立即脱离 promise 链?

javascript - 如果另一个请求正在进行中,则对 ajax 请求进行排队

javascript - jQuery动态获取标签的内容

javascript - AngularJS 1.3.8 使用多个 Controller ,第二个 Controller 不工作

javascript - 导入 ReactiveFormsModule 后 Angular 路由器停止工作

javascript - AngularJS $state.go() 不发出 $stateChangeSuccess?