0

私はAngularにかなり慣れていないので、しばらくの間、これについてぐるぐる回っています。

最初に少し背景を説明します。Angular UI Router を使用する mean.io の MEAN スタックを使用しています。

DB に、カテゴリ ID を割り当てることができる Post モデルがあります。

新しい投稿を作成するときに、既存のカテゴリを DB から読み込み、選択ボックスに表示したいと考えています。

私が見ることができることから、私は解決を使用する必要があります。まず第一に、config.jsというファイルにある解決プロパティにロジックがあるとは思えません-これまでのところ、そこにサービスへの呼び出しを配置し​​、次のコードを使用してカテゴリを取得しています。

.state('create post', {
    url: '/posts/create',
    templateUrl: 'views/posts/create.html',
    controller: 'PostsController',
    resolve: {
      loadCategories: function (Categories) {
        Categories.query(function(categories) {
            return categories;
        });
      }
    }
})

最初の問題は、コントローラーまたはビューで返されたデータにアクセスできないことです。

次に、特定の組織に属するカテゴリのみをロードしたいと考えています。各ユーザーに組織 ID を割り当てるので、config.js にいるときに現在サインインしているユーザーにアクセスするにはどうすればよいでしょうか。

どんな助けでも本当に感謝しています。

ありがとう

4

2 に答える 2

0

Categories が angularresourceであると仮定すると、次のことができるはずです

loadCategories: function (Categories) {
    return Categories.query();
}

そして、コントローラーで:

.controller('PostsController', function ($scope, loadCategories) {
     $scope.categories = loadCategories;
});

わかりました、コメントを読んで、これをコントローラーに挿入したいが、特定の状態でのみ、問題が発生するようです。あなたは試すことができます:

.state('create post', {
  url: '/posts/create',
  templateUrl: 'views/posts/create.html',
  controller: 'PostsController',
  data: {
    categories: Categories.query()
  }
})

その後

.controller('PostsController', function ($scope, $state){
  console.log($state.current.data.categories);
});

どちらがうまくいくはず...

于 2014-03-30T07:36:13.153 に答える