2014-04-04 27 views
10

tôi đang làm việc trên một ứng dụng được xây dựng với AngularJS có hai trạng thái khác nhau:AngularJS chuyển đổi sang trạng thái trừu tượng

  1. App giới thiệu thuật sĩ
  2. trang ứng dụng (với một mẫu Navigation và quan điểm lồng nhau)

tôi muốn mặc định cho Nhà nước 1 lần đầu tiên một người nào đó truy cập vào ứng dụng, một khi thực hiện các hướng dẫn, tiếp tục đến các trang ứng dụng, Nhà nước 2.

của tôi "ứng dụng" nhà nước (Nhà nước 2) là một trạng thái trừu tượng vì nó có các khung nhìn lồng nhau. Vì vậy, tôi không thể chuyển sang trạng thái này.

.config(function($stateProvider, $urlRouterProvider) { 
$stateProvider 

    .state('intro', { 
    url: '/', 
    templateUrl: 'templates/intro.html', 
    controller: 'IntroCtrl' 
    }) 

    .state('app', { 
    url: '/app', 
    abstract: true, 
    templateUrl: 'templates/menu.html', 
    controller: 'AppCtrl' 
    }) 

    .state('app.playlists', { 
    url: "/playlists", 
    views: { 
     'menuContent' :{ 
     templateUrl: "templates/playlists.html", 
     controller: 'PlaylistsCtrl' 
     } 
    } 
    }); 

    $urlRouterProvider.otherwise("/"); 

}) 
+0

Vì vậy, chuyển sang một trong những quốc gia trẻ? Và/hoặc làm một cái gì đó như thế này: $ urlRouterProvider.when ('/ app', '/ app/playlist'); – aet

+0

@aet Tôi đã thử điều này, nhưng vì Tiểu bang ứng dụng của tôi đang sử dụng mẫu trình đơn bên, chuyển thẳng đến ứng dụng/danh sách phát không tải trong menu. –

+0

@MarkK gặp vấn đề tương tự với mọi giải pháp cố định cho vấn đề này. Tôi đang cố gắng để tích hợp Ionic Intro Hướng dẫn với Splashscreen (http://codepen.io/gwhickman/pen/zpDFG/) với ứng dụng menu bên nhận được vấn đề. –

Trả lời

13

Tôi đã có cùng một vấn đề với bạn, đây là bài viết khác về tình trạng trừu tượng: angularjs ui-router default child state and ui-sref

Nó đã giải thích rõ tại sao bạn không thể truy cập trạng thái trực tiếp trừu tượng

Đó là chút muộn để trả lời bài đăng này, nhưng hy vọng nó sẽ giúp đỡ.

(Btw, đây phải là một bình luận)

3

Tôi đã thêm dịch vụ $ vị trí với bộ điều khiển của trang "giới thiệu" và sử dụng sau đây để chuyển đến app nhà nước mà làm việc cho tôi.

$location.path('app/playlists'); 

Menu.html được tải và điều hướng đến danh sách phát.

0

Trong một dịch vụ:

$location.path(
    $state.href('app.some.abstract.state', { some: 'params' }) 
); 

Hoặc trong một khuôn mẫu ($state phải có sẵn trong địa phương hoặc toàn cầu $scope):

<a ng-href="{{$state.href('app.some.abstract.state', { some: 'params' })}}">...</a> 
Các vấn đề liên quan