angularJS $ stateParams无法将值传递给控制器

时间:2016-07-05 14:17:42

标签: angularjs state controllers

我的主应用程序中有一个这样的状态:

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
                }
        ...

我试图将参数“contactId”从URL传递给另一个名为contactEditCtrl.js的文件中的Controller,如下所示:

.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,但我不明白!

对于我在这里缺少的东西有任何想法吗?

1 个答案:

答案 0 :(得分:1)

你忘记了" params"

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