2015-12-19 2 views
0

Я использую угловой-ui-router для создания приложения на одну страницу. В моем состоянии «cerca» у меня есть таблица, которая показывает всех пользователей в моем db. Последние столбцы любой строки содержат ссылку на i-го пользователя. Я хочу, чтобы иметь возможность щелкнуть по этой ссылке и показать страницу пользователя со всей информацией о конкретном пользователе (возможно, извлечен из db с использованием идентификатора пользователя). В моем состоянии «cerca» у меня есть идентификаторы всех пользователей. Я пытаюсь использовать их для создания динамического URL-адреса, но мне сложно передать идентификатор в новое состояние. Это моя app.config:Угловое UI-маршрутизатор новое состояние на основе идентификатора пользователя

app.config(function($stateProvider, $urlRouterProvider){ 
$urlRouterProvider.otherwise('/home'); 
$stateProvider 
.state('home',{ 
    url:'/home', 
    templateUrl: 'pages/home.html', 
    controller: 'homeCtrl' 
    }) 
.state('inserisciP',{ 
    url:'/inserisciP', 
    templateUrl: 'pages/inserisciPaziente.html', 
    controller: 'inserisciController' 
    }) 
    .state('cerca',{ 
    url:'/cerca', 
    templateUrl:'pages/cercaPaziente.html', 
    controller: 'cercaController' 
    }) 
    .state('paziente',{ 
    url:'/paziente', 
    templateUrl:'pages/paziente.html', 
    controller: 'pazienteController' 
    }) 
    .state('inserisciE',{ 
    url:'/inserisciE', 
    templateUrl:'pages/inserisciEsame.html' 
    }) 
.state('listaLavoro',{ 
    url:'/listaLavoro', 
    templateUrl:'pages/listaLavoro.html', 
    }) 
.state('refertazione',{ 
    url:'/refertazione', 
    templateUrl:'pages/refertazione.html' 
    }) 
.state('nomeUtente',{ 
    url:'/nomeUtente', 
    templateUrl:'pages/nomeUtente.html' 
}) 
.state('amministrazione',{ 
    url:'/amministrazione', 
    templateUrl:'pages/amministrazione.html' 
}) 
.state('richiestaRadiologia',{ 
    url:'/richiestaRadiologia', 
    templateUrl:'pages/richiestaRadiologia.html' 
}) 
.state('help',{ 
    url:'/help', 
    templateUrl:'pages/help.html' 
}); 

}); 

и это мой стол:

<tr ng-repeat="p in copiaTable"> 
    <td>{{p.id}}</td> 
    <td>{{p.last_name}}</td> 
    <td>{{p.first_name}}</td> 
    <td>{{p.codice_fiscale}}</td> 
    <td>{{p.phone_number}}</td> 
    <td><a ui-sref="paziente">edit</a></td> 
</tr> 

Я также судимое создать службу для обмена данными между государствами ... Любые предложения о том, как я могу решить эта проблема с ui-router?

ответ

3

Вы можете передать параметр в состояние при нажатии ссылки. Предположим, вы хотите передать идентификатор пользователя. Код ссылки будет выглядеть так:

<a ui-sref="paziente({userID: p.id})">edit</a> 

В файле конфигурации маршрута, вы можете определить paziente состояние так:

state('paziente',{ 
    url:'/paziente/:userID', 
    templateUrl:'pages/paziente.html', 
    controller: 'pazienteController' 
}) 

С пройденному ID, Вы можете найти пользователя с вашего завод.

+0

спасибо большое ... Я был близок с моим attemps, но это работает отлично! –

+0

Я в разнице! –

+0

Я должен получить 15 репутации для голосования ... –

1

Пользовательские данные должны быть решены следующим образом:

state('userInfo', { 
    url: 'user/:userId', 
    templateUrl: 'userProfile.html', 
    resolve: { 
    user: function($stateParams, UserService) { 
      return UserService.getUser($stateParams.userId); 
      } 
    } 
}); 
Смежные вопросы