2015-06-11 2 views
2

У меня этот код в моем угловом приложении. Так как в коде говорится, что загружаются несколько видов, и я хочу передать один параметр.

.state('root.moduleListing', { 
    params: ['registerData'], 
    views: { 
     "main_container": { 
      controller: 'ModuleListingController as model', 
      templateUrl: 'misc/module-listing/module-listing.tpl.html', 
      resolve: { 
       registerData: ['$stateParams', function($stateParams) { 
        return $stateParams.registerData; 
       }] 
      } 
     }, 
     "components_header_header": { 
      controller: 'HeaderController as model', 
      templateUrl: 'components/header/post-login.tpl.html', 
     }, 
     "components_footer_footer": { 
      controller: 'FooterController as model', 
      templateUrl: 'components/footer/footer.tpl.html', 
     } 
    } 
} 

& Я зову его с помощью

$state.go('root.moduleListing', {'registerdata': response}); 

& в контроллере, я просто пытаюсь войти на консоль.

module.controller('ModuleListingController', function ($scope, $state, registerData) { 
    var model = this; 
    console.log("registerData : " + registerData); 
} 

Теперь приложение не даже начать то я получаю сообщение об ошибке в консоли говоря:

failed to instantiate module amcatUI due to: 
TypeError: id.match is not a function 
    at getArrayMode 

ответ

4

Тип заданных параметров и toParamas от $ state.go должна быть такой же массив или объект на обе стороны перехода государства. Просто добавьте свои параметры со значением по умолчанию для вашего определения состояния.

Вам необходимо обновить код из

params: ['registerData'], 

в

params: {'registerData' : null}, 

Вы можете обратиться к "https://stackoverflow.com/a/26204095/1132354" для подробного ответа.

Редактировать

Кроме того, вам нужно будет обновить

$state.go('root.moduleListing', {'registerdata': response}); 

в

$state.go('root.moduleListing', {'registerData': response}); 

Существует небольшая ошибка опечатка.

+0

Но в этом случае registerData в контроллере всегда будет null. Я хочу, чтобы это значение передавалось в $ state.go – Ayush

+0

Это будет ваше значение. null - это значение по умолчанию. Когда вы говорите $ state.go ('root.moduleListing', {'registerdata': response}); то в контроллере вы получите ответ как registerData. Попробуйте это – nikhil

+0

Ошибка. $ state.go ('root.moduleListing', {'registerdata': response}); d в Данные должны быть в столицах. – nikhil

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