2017-01-24 6 views
0

私はCRUDモジュールactivitiesをデフォルトのarticlesの代わりに使用していますが、モジュールの構造は同じです。私は新しいactivityは、activities.create状態がサービスでモジュール作成を許可していない複数の機能

.state('activities.create', { 
    url: '/create', 
    templateUrl: 'modules/activities/client/views/form-activity.client.view.html', 
    controller: 'ActivitiesController', 
    controllerAs: 'vm', 
    resolve: { 
     activityResolve: newActivity 
    }, 
    data: { 
     roles: ['user', 'admin'], 
     pageTitle: 'Activities Create' 
    } 
}) 

function newActivity(ActivitiesService) { 
    return new ActivitiesService().getActivitiesOfAllUsers(); 
} 

そして、私のActivitiesServicearticles 1のような)が呼び出される作成ページに移動するために選択した場合

は次のようになります。

function ActivitiesService($resource, Authentication) { 
    return { 
     getActivitiesOfCurrentUser: function() { 
      return $resource('api/:userId/activities/:activityId', { 
       userId: Authentication.user._id, 
       activityId: '@_id' 
      }, { 
       update: { 
        method: 'PUT' 
       } 
      }); 
     }, 
     getActivitiesOfAllUsers: function() { 
      return $resource('api/activities/:activityId', { 
       activityId: '@_id' 
      }, { 
       update: { 
        method: 'PUT' 
       } 
      }); 
     } 
    } 
} 

デフォルト設定のActivitiesServiceは、

function ActivitiesService($resource, Authentication) { 
    return $resource('api/:userId/activities/:activityId', { 
     userId: Authentication.user._id, 
     activityId: '@_id' 
    }, { 
     update: { 
      method: 'PUT' 
     } 
    }); 
} 

そしてnewActivity関数は次のようになります。サービスは、デフォルトのレイアウトにあるとき

function newActivity(ActivitiesService) { 
    return new ActivitiesService(); 
} 

だから、作成ページに行くだけで正常に動作します。

しかし、私がやったようにサービスに別の機能を追加するのはそれを壊すことです。私が作成ページに行くことを選択すると、何も起こっていないという理由でエラーも表示もありません。

私が見るところでは、activityResolveは同じものを評価する必要があり、なぜ動作しないのか分かりません。

答えて

0

受け入れた回答hereに基づいて、私は答えを見つけました。

function ActivitiesService($resource, Authentication) { 
    return { 
     getActivitiesOfCurrentUser: $resource('api/:userId/activities/:activityId', { 
       userId: Authentication.user._id, 
       activityId: '@_id' 
      }, { 
       update: { 
        method: 'PUT' 
       } 
      }), 
     getActivitiesOfAllUsers: $resource('api/activities/:activityId', { 
       activityId: '@_id' 
      }, { 
       update: { 
        method: 'PUT' 
       } 
      }) 
    }; 
} 

とに newActivity機能を変更:私はこれに ActivitiesServiceを改正

function newActivity(ActivitiesService) { 
    return new ActivitiesService.getActivitiesOfAllUsers; 
} 

(そうActivitiesServiceに括弧なし)

関連する問題