Задать вопрос

Как передать параметр id в контроллер?

Добрый день! Делаю SPA приложение на Django + Angular, серверная и клиентская части общаются только через rest api. Ситуация следующая: На главной странице выводится список кейсов, и по клику на один из них должно открыться детальное его описание, но знаний пока не хватает, чтобы правильно передать id кейса в $http сервис соответствующего контроллера, видел в туториалах только примеры с использованием php скрипта, куда передавался id.

app.js
var app = angular.module('uniApp', ['ngRoute']);

angular.
  module('uniApp').
  config(['$locationProvider', '$routeProvider',
    function config($locationProvider, $routeProvider) {
      $locationProvider.html5Mode(true);

      $routeProvider.
        when('/', {
          controller : 'mainCtrl',
          templateUrl : 'media/views/main.html'
        }).
        when('/:id', {
          controller : 'detailCtrl',
          templateUrl : 'media/views/detail.html'
        }).
        otherwise('/');
    }
  ]);

app.controller('mainCtrl', function ($scope, $http) {
  $http.get('http://127.0.0.1:3000/api/v0/cases/').success(function(data){
    $scope.cases = data;
  });
});
app.controller('detailCtrl', function($scope, $http) {
  $http.get('http://127.0.0.1:3000/api/v0/cases/<:id кейса>').success(function(data){
    $scope.case = data;
  });
});


Ответы rest api:

GET /api/v0/cases/

[
    {
        "id": 7,
        "name": "AMA",
        "preview": "http://127.0.0.1:3000/media/images/ama_bh_eBLMABd.jpg",
        "slider_preview": "http://127.0.0.1:3000/media/images/case_ama_pQjtadA.jpg",
        "url": "http://127.0.0.1:3000/api/v0/cases/7/"
    },
    {
        "id": 8,
        "name": "Nana",
        "preview": "http://127.0.0.1:3000/media/images/ama_bh_9MYiC6t.jpg",
        "slider_preview": "http://127.0.0.1:3000/media/images/case_ama_uJ2DQVT.jpg",
        "url": "http://127.0.0.1:3000/api/v0/cases/8/"
    }
]


GET /api/v0/cases/7/
{
    "name": "AMA",
    "slider_preview": "http://127.0.0.1:3000/media/images/case_ama_pQjtadA.jpg",
    "articles": [
        {
            "picture": "http://127.0.0.1:3000/media/images/ama_bh_IEc3Z4X.jpg",
            "caption": "sdedfsdd"
        },
        {
            "picture": "http://127.0.0.1:3000/media/images/ama_bh_rbXJoIB.jpg",
            "caption": "ssddscd"
        }
    ]
}
  • Вопрос задан
  • 448 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
yarkov
@yarkov
Помог ответ? Отметь решением.
https://docs.angularjs.org/api/ngRoute/service/$ro...
Не знаю как еще объяснить подробнее
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@springimport
Как на счет этого?

И вообще.
Ответ написан
Комментировать
ogarich89
@ogarich89
Front-End Developer
Почитай про сервис $routeProvider

https://docs.angularjs.org/api/ngRoute/provider/$r...

Используй сервис $http для примитивных действий
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы