2016-07-05 54 views
1

我在我的主要應用程序宣告這樣一個狀態:

var app = angular.module("contactManagement", 
     ["'ui.router']) 
    .config(["$stateProvider", "$urlRouterProvider", "$locationProvider", 
      function ($stateProvider, $urlRouterProvider, $locationProvider) { 

    $stateProvider.state('contacts.detail', { 
       url: "/contacts/:contactId", 
       templateUrl: 'contacts.detail.html', 
       controller: contactEditCtrl 
       } 
     ... 

,我試圖從URL傳遞參數「的ContactID」到控制器在另一個文件名爲contactEditCtrl.js這樣的:

.module("contactManagement ") 
.controller("ContactEditCtrl", ["contactResource", ContactEditCtrl]); 

    function ContactEditCtrl(contactResource, $stateParams) { 
      var vm = this; 
      var contactId = $stateParams.contactId; 
      vm.title = ''; 
      vm.message = ''; 

      contactResource.get({ id: **contactId** }, 
      ...more stuff... 

但它表示,文檔的ContactID沒有達到使用$ stateParams控制器。

我只需要將控制器中的ContactId注入,但我不明白!

任何想法,我在這裏失蹤?

+0

'.controller( 「ContactEditCtrl」,[ 「contactResource」, 「$ stateParams」,ContactEditCtrl]);'在控制器聲明添加stateParams作爲依賴 –

+0

大,它的工作原理!!!! 感謝 –

回答

1

你忘了 「PARAMS」

.state('contacts.detail', { 
    url: "/contacts/:contactId", 
    params:{contactId: null}, 
..more code... 
}) 
+0

加入「PARAMS」,但仍然無法正常工作,我不斷收到一個錯誤: 「錯誤:$ stateParams是未定義」 當然,形式沒有得到填充 –

+0

哈哈。添加它作爲依賴! –