Angularjs $routeParams дает мне undefined

Правда я сделал это сотым раз и он мне кажется, способной является глупость, которую я не вижу.

Моя проблема - что, когда я делаю один $location.path('/Miruta/'+id); (url производится мне, таким образом, http://localhost/mysite/WebContent/#/alta/minDetalle/2789) когда он прибывает к url, я предназначаю, $routeParams.id он приходит ко мне как undefined, и он должен бы быть 2789 я оставляю код.

//Parte del App.js
app
  .config([
    '$routeProvider',
    '$locationProvider',
    '$httpProvider',
    function($routeProvider, $locationProvider, $httpProvider) {

      $httpProvider.interceptors.push('sacgHttpInterceptor');

      $routeProvider

      .when("/alta/minDetalle/:id", {
        templateUrl: "pages/altas/mindetalle.html",
        controller: 'MinDetalleCtrl',
        controllerAs: 'vm'
      })
      .otherwise({
          templateUrl: "pages/home.html",
          controller: "homeCtrl"
        });
}]);


//Registro.js
//Llamo mi servicio de guardar

  ObjectFactory.save(min).then(function(data){
    console.log('Salvado!!!');
    var id = data.idMinutario;
    resetDropDown();
    $location.path('/alta/minDetalle/'+id);
  });

//Js donde redirecciono.
(function(){
  'use strict';

  /*
   * Para mejor lectura del codigo es mejor colocarlo de esta forma (Nombre
   * cotrolador, Nombre de funcion)
   */
  app.controller('MinDetalleCtrl', MinDetalle);

      //  /* Inyecto las dependencia que va a necesitar mi funcion main */
 MinutarioDetalle.$inject = ['$scope', '$rootScope', '$http', 'ObjectFactory', "$location", 'DTOptionsBuilder', '$filter', '$q', "ObjectFactoryPersistence", "$interval", '$routeParams'];

  ////Funcion de mi controller
  function MinutarioDetalle($rootScope, $http, ObjectFactory, $location, DTOptionsBuilder, $filter, $q, ObjectFactoryPersistence, $interval, $routeParams){

    ///Asignamos this to vm (ViewModel) Porque amamos los VM :D

  console.log("llegue bien");
  console.log($routeParams.id); //undefined

    var vm = this;
    vm.hideToggle = true;
    vm.hideToggleDocumentos = true;
    vm.hideToggleAnexos = true;


    vm.testCode = "Hellos World";

    vm.click = clickme;

    function clickme(){
      alert('test');
    }
  }

})();

Не, что я врежу, я думаю, что это что-то VM который я стараюсь осуществлять, но честно не, где - ошибка.

Adicionalmente, я не вижу никакой ошибки в консоли.

0
задан 11.03.2016, 12:29
2 ответа

У тебя нет того же количества элементов в $inject что в функции драйвера. Так, введенные остаются все плохо распределенные, скроллировавшие из-за того, что так это говорят; Так как угловой он не смотрит имя параметров (когда ты используешь $inject) а Ваша команда.

Костлявая, что то, что ты делаешь, когда ты делаешь console.log($routeParams.idMinutario); он в действительности console.log($interval.idMinutario);. то, что конечно неопределенное.

Обрати внимание...

MinutarioDetalle.$inject = ['$scope', '$rootScope', '$http', 
              'ObjectFactory', "$location", 'DTOptionsBuilder', 
              '$filter', '$q', "ObjectFactoryPersistence", 
              "$interval", '$routeParams']; // 11 parametros

////Funcion de mi controller
function MinutarioDetalle($rootScope, $http, ObjectFactory, 
              $location, DTOptionsBuilder, $filter, 
              $q, ObjectFactoryPersistence, $interval, 
              $routeParams){ // 10 parametros

Решение:

Ты должен atregar $scope как первый параметр MinutarioDetalle, или удалять это $inject. Так как ты это не используешь, удали это.

Привет.

3
ответ дан 24.11.2019, 14:44
  • 1
    Правда многие Спасибо, я я функционирую, не я hab и # 237; в отчитанный в этой детали. – Wilfredo 11.03.2016, 12:30

Кроме того, в маршруте ты определяешь параметр как id но потом ты подбираешь $routeParams так называемый параметр idMinutario.

1
ответ дан 24.11.2019, 14:44
  • 1
    Привет Это Был Typo в момент писания, так как по причине безопасности предприятия deb и # 237; чтобы менять много имен перед тем, как печатать вопрос. Спасибо таким же образом. – Wilfredo 11.03.2016, 12:29