2017-02-24 10 views
0

私はこれを明確に説明することができます。まず、ng-adminを使用していて、カスタムビューを作成する方法を知っています。this:ng-adminでネストされたビューを作成

同じカスタムページ内にネストされたビューを作成する方法を理解しようとしています。具体的には、ページ上にそれぞれの機能(およびサービス)を持つ3つの列が必要なビューがあります。

例:下の画像で

、Iは3つのビューを持っています。

  1. 最初の列は中央の列は項目のリストが表示されます(NG-管理話すのエンティティ別名)コレクションのリストを取得するには、カスタムサービスを呼び出し、ユーザーがコレクション
  2. を選択することができるようになります選択したコレクション/エンティティで、ユーザーが最後の列がmyapp.com/ng-admin/#する必要があります。このページにアクセスするには、選択した項目

URLを編集するためになる一つの項目

  • を選択することができますコレクション/コレクション/コレクション/ 1(1は、表示/編集するアイテムのIDです)

    The nested view for ng-admin

    マイコード:

    //collections state 
    myApp.config(function ($stateProvider) { 
    $stateProvider.state('collections', { 
        abstract: true, 
        parent: 'ng-admin', 
        url: '/collections/', 
        controller: collectionsCtrl, 
    
        templateUrl: '/app/collectionsView.html' 
    }); 
    
    //collection state 
    myApp.config(function ($stateProvider) { 
    $stateProvider.state('collections.collection', { 
    
        parent: 'ng-admin', 
        url: '/collections/collection/:ID', 
        controller: collectionCtrl, 
        templateUrl: '/app/collectionView.html' 
    }); 
    ... ommiting first two controllers 
    

    そして、コレクションアイテムコントローラでは、私が持っている:

    myApp.controller('ItemViewCtrl', ['$scope', 'Events', '$stateParams', '$sce', function($scope, Events, $stateParams, $sce) { 
    
    $stateParams.ID && Collection.find($stateParams.ID).then(function(item) { 
        $scope.item = item; 
    
    }); 
        $scope.view = function(id) { 
          $state.go('days.day', { 
           'ID': id 
          }) 
         }; 
    
    
    
    }]); 
    

    マイcollectionsView.html

    <div ng-include src="'/app/tpl/collectionView.html'" include-replace> 
    </div> 
    <div class="inner-content full-height" ui-view></div> 
    
    を私collectionView.html

    <ul> 
         <li ng-repeat="collections as collection" > 
          <a ui-sref="collections.collection.id"> 
           Link to collection 
          </a> 
         </li> 
        <ul> 
    

    私の現在の問題:

    私は両方のビューを表示するには、コレクション/コレクションを取得することができますが、それは最初の列は表示されません。

    私はちょうどコレクションは/私が唯一の列最初に表示することができますに行く場合は(私は抽象除去するが、場合にのみ:真$ stateParamルータのオプションから)を

    何をしないのですか?

  • 答えて

    1

    は解決:

    Thisは、私は、彼らは両方とも$ stateProviderの一環として、ときに私は「statecollections.collectionの親から継承しているので、私は親プロパティまたはURLの最初の部分を必要としなかったことを実現助けました。

    //collection state 
    myApp.config(function ($stateProvider) { 
    $stateProvider.state('collections.collection', { 
    
        // parent: 'ng-admin', <-REMOVED 
        url: '/collections/collection/:ID', // Didn't need the /collections part of the url 
        controller: collectionCtrl, 
        templateUrl: '/app/collectionView.html' 
    }); 
    
    関連する問題