angularjs嵌套的详细信息视图不会显示

时间:2015-01-13 22:31:01

标签: angularjs angular-ui-router nested-views

我的应用程序的stateProvider有一个嵌套视图(base.gallery - &gt; base.gallery.detail),如果我点击我的图库中的链接,它应该显示详细视图,但它不会... < / p>

这个链接看起来不错,但它只会更改浏览器中的url并从onEnter函数中记录“显示”,但它不会显示模板(“modules / album / detail / view / detail.html“)在我的ui-view中......

例如:我的链接<a ui-sref="base.photos.detail(params(item.id))" class="list-item-link" href="/gallery/21/detail/457">

   .state("base", {
        abstract: true,
        templateUrl: 'modules/base/views/base.html',
        controller: function($scope, navigationData){
            $scope.navigation.data = navigationData;
         },

        resolve:{
            navigationData:function(navigationSvc){
                var response = navigationSvc;
                return response;
            }
        }
    })
    .state("base.categories", {
        url: "/categories",
        templateUrl: "modules/album/list/view/list.html",
        controller: function($scope, data){
            $scope.settings.data = data;
            $scope.settings.type = "categories";
         },
        resolve:{
            data:function(listSvc){
                var response = listSvc.load("categories");
                return response;
            }
        }
    })
    .state("base.category", {
        url: "/category/:id",
        templateUrl: "modules/album/list/view/list.html",
        controller: function($scope, data){
            $scope.settings.data = data;
            $scope.settings.type = "galleries";         
         },
        resolve:{
            data:function($stateParams, listSvc){
                var response = listSvc.load("category/"+$stateParams.id);
                return response;
            }
        },
    })
.state("base.gallery", {
        url: "/gallery/:id",
        templateUrl: "modules/album/list/view/list.html",
        controller: function($scope, data, $stateParams){
            $scope.settings.data = data;
            $scope.settings.type = "photos";
         },
        resolve:{
            data:function($stateParams, listSvc){
                var response = listSvc.load("gallery/"+$stateParams.id);
                return response;
            }
        }
    })

    .state("base.gallery.detail", {
        url: "/detail/:photo_id",
        templateUrl: "modules/album/detail/view/detail.html",
        controller: function($scope, $stateParams){
            console.log("doesn't get displayed ");
            $scope.settings.type = "photo";
        },

        onEnter: function(){
            console.log("get displayed");
        }
    })

我的索引的HTML,我加载了所有列表,我也希望在ui-view中显示我的详细视图......

...
<div class="content" ui-view></div>
...

我的列表视图的HTML

<li class="list-item" ng-repeat="item in list.data">
    <a ui-sref="{{state}}(params(item.id))" class="list-item-link">item.title</a>
</li>

更新

k我得到了它;)我需要视图,然后使用@在我的index.html的同一个ui视图中定位它

.state("base.gallery.detail", {
    url: "/detail/:photo_id",
    views:{
      "@" : {
        controller: function($scope, $stateParams, listSvc){
          $scope.settings = {};
          $scope.settings.type = "photos";
          $scope.photo = listSvc.data[$stateParams.id_photo-1];
          console.log($stateParams);
        },
        template: "<h2>detail</2><div>{{photo.title}}</div>"
      } 
});

0 个答案:

没有答案