2014-11-03 2 views
0

У меня есть маршрут с параметром, как этотAngularJS - простая маршрутизация не работает

var app = angular.module("myapp", ["ngRoute"]); 

    app.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) { 
      $locationProvider.hashPrefix("!").html5Mode(true); 

      $routeProvider 

      .when('/sukien', { templateUrl: '/app/views/sukien/index.html' , controller: 'eventCtrl' }) 
      .when('/sukien/:id', { templateUrl: function (params) { return '/app/views/sukien/index.html?id=' + params.id }, controller: 'eventCtrl' }) 


     }]) 

почему/sukien работы и/sukien /: идентификатор не? Действительно, angularjs, похоже, не понимает, что это такое. «Непринятый типError: undefined не является функцией»

/sukien/333 => не работает.

+0

Просто печать ' params', чтобы консоль от вашей функции, чтобы увидеть, что она содержит. – akonsu

ответ

1

Вы смешиваете URL-адрес шаблона, состояние вашего приложения и параметры поиска.

ШаблонUrl сообщает angularjs, где искать html-файл: он очень маловероятно будет зависеть от params.id и будет установлен через функцию, но скорее будет константой.

Он не имеет ничего общего с URL-адресом, который пользователь видит в своем браузере.

Например: '/app/views/sukien/suiken.html'

URL, пользователь видит будет что-то вроде:

.../suiken/1223445 

И тогда вы можете получить доступ к идентификатору в контроллере через $ routeParams.id

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