2015-10-13 4 views
0

Я пытаюсь использовать ui-router в своем проекте.angularjs - ui.router не отображается ui-view немедленно

Основной модуль:

var core = angular.module('muhamo.core', ['angular-loading-bar', 'anguFixedHeaderTable', 'ui.router']); 

Tracking модуль:

var app = angular.module(TRACKING_MODULE_NAME, ['muhamo.core']); 
    app.config(Configure); 

Configure.$inject = ['$stateProvider', '$urlRouterProvider']; 
function Configure($stateProvider, $urlRouterProvider) { 
    $stateProvider.state('contacts', { 
     templateUrl: '/static/partials/employee/employee-edit', 
     controller: function() { 
      this.title = 'My Contacts'; 
     }, 
     controllerAs: 'contact' 
    }); 
    $urlRouterProvider.otherwise("/contacts"); 
    console.log($stateProvider); 
} 

и определение HTML:

<div ui-view></div> 

Он отлично работает, если я нажимаю на Ui-sref ссылке. Но при загрузке страницы он не загружает представление по умолчанию «/ contacts». Я что-то упустил?

UPDATE

Он работает после добавления недостающего имущества "URL". Но теперь у меня другая проблема, если я продлить реализацию так:

function Configure($stateProvider, $urlRouterProvider) { 
     $stateProvider.state('employees', { 
      abstract: true, 
      url: "/employees" 
      /* Various other settings common to both child states */ 
     }).state('employees.list', { 
      url: "", // Note the empty URL 
      templateUrl: '/static/partials/employee/employee-list' 
     }); 
    $urlRouterProvider.otherwise("/employees"); 
    console.log($stateProvider); 
} 

также с большим количеством состояний, щ-вид не делает.

ответ

1

Есть две вещи в рыбный вашей реализации. Вы используете пустой URL-адрес, а ваш маршрут по умолчанию - абстрактный. Попробуйте мои изменения ниже.

function Configure($stateProvider, $urlRouterProvider) { 
    $stateProvider.state('employees', { 
     abstract: true, 
     url: "/employees" 
     /* Various other settings common to both child states */ 
    }).state('employees.list', { 
     url: "/list", // Note the empty URL 
     templateUrl: '/static/partials/employee/employee-list' 
    }); 
$urlRouterProvider.otherwise("/employees/list"); 
console.log($stateProvider); 

Приветствия

1

Да. Вы должны установить state.url к «/» контакты

$stateProvider.state('contacts', { 
    url: '/contacts', 
    templateUrl: '/static/partials/employee/employee-edit', 
    controller: function() { 
     this.title = 'My Contacts'; 
    }, 
    controllerAs: 'contact' 
}); 
+0

Пожалуйста, вы можете иметь взгляд мой обновленный вопрос? – aymeba

+0

Я не думаю, что у вас может быть пустой URL-адрес. Однако у вас может быть URL-адрес/urlRouterProvider.when ('/ employees', '/ employees /'), ' –

1

Это кажется, что вы забыли установить параметр url, например .:

$stateProvider.state('contacts', { 
    url: "/contacts", 
    ... 
} 
+0

он работает сейчас, спасибо :) иногда нам нужно больше кофе :) – aymeba

+0

можете ли вы посмотреть мой обновленный вопрос? – aymeba

+0

В принципе, вам нужен диспетчер в родительском состоянии, если вы хотите использовать вложенные состояния с пустыми URL-адресами. См. [Вторая часть моего ответа на другой вопрос] (http://stackoverflow.com/a/32712889/18745). – DzinX

Смежные вопросы