2016-02-11 5 views
1

То, что я пытаюсь сделать, это создать динамический список динамиков для события и отдельных страниц профиля для каждого динамика. Я уже создал список, используя ng-repeat, и ссылки работают с использованием ng-href. Используя угловую маршрутизацию, я даже получил загрузку шаблона страницы, единственная часть, отсутствующая для этого, - это выяснить, как заполнить шаблон страницы данными, специфичными для выбранного динамика. Чтобы уточнить, есть динамический список с неизвестным количеством динамиков, у каждого будет страница профиля с использованием того же шаблона, однако то, что я изо всех сил пытаюсь сделать, это заполнить этот шаблон деталями для отдельного динамика. Здесь есть похожие вопросы, хотя они, похоже, пытаются создать динамические шаблоны, а не динамический контент, и не решают вопрос, поскольку он существует. Вот некоторые из существующего кода:Угловые динамические страницы с маршрутизацией

// The routing: 

.when('/profile/:name*', { 
    templateUrl : 'pages/profile.html', 
    controller : 'profileController' 
}) 

// The lists and links on the index page... 

<div class="grid" ng-repeat="speaker in home.speakers"> 
    <a ng-href="profile/{{speaker.url}}"> 
     <div>....</div> 
    </a> 
</div> 
+0

Прочтите [руководство пользователя] (https://docs.angularjs.org/api/ngRoute/service/$route). В нижней части страницы у вас будет отличный пример для горячей реализации этого –

+1

@AlonEitan вы правы, я даже не видел этого раньше. Я расследую это, спасибо. –

ответ

0

Маршрут

в маршрутах вы должны иметь что-то вроде

.state('Prof', { 
    url: '/Prof', 
    templateUrl: 'rout/to/yout/template.html' 
}) 

Услуги/Фабрика

Создать фабрику, чтобы получить данные из ваш отдых api с http-вызовом, что-то вроде этого.

.factory('profContent', function($http){ 
    return { 
    getContent: function(profid){ 
     return $http.get('http://localhost:3000/api/prof', { params: { user_id: profid }); 
    } 
    }; 
}); 

Контроллер

.controller('profCtrl', ['$scope', 'profContent', function($scope, profContent){ 

    profContent.getContent(profid).then(function(response){ 
    $scope.firstName = response.data.fName; 
    $scope.lastName = response.data.lName; 
    }); 
}]); 

использовать контроллер для установки $scope для представления с вещами, которые вы получили от вашего сервиса.

Заключение

Вы можете передать из параметров, которые вы связываете с областью и использовать это для запроса БД и получить правильные данные.

+0

Спасибо за ответ, это, безусловно, отличается от того, что я думал. В настоящее время я создаю список, используя ajax для создания данных JSON. Есть ли способ продолжить это вместо использования фабрики? Я думал, что у меня это было в вопросе, но я мог бы удалить его –

+0

не так уверен в ajax, не думаю, что он действительно нужен в угловом. в Угловом примере потока данных может быть «mongodb> express route> factory> controller> view'. это, как правило, принятый способ получения и публикации данных, поскольку угловая - это одна страница, для которой не требуется ajax. –

+0

Извините, позвольте мне исправить себя, после быстрого поиска в Google я обнаружил, что HTTP-вызов службы/фабрики является ajax-вызовом [здесь ссылка] (http://www.tutorialspoint.com/angularjs/angularjs_ajax.htm) –