2

我有一個狀態,這樣的:在控制器

​​

然後,我有:

return app.controller('deletectrl', ['$scope', '$rootScope', '$stateParams', function ($scope, $rootScope, $stateParams) { 
     debugger; 
     // check for ui router error 
     var del = this; 
     del.entityname = $stateParams.entityname; 
     del.entityid = $stateParams.id; 
    }]); 

從像一個控制器調用$ state.go:

$state.go('home.deletemsg', { 'entityname': cd.Customer.Name, 'id': cd.Customer.CustomerID }, { 'location': false, 'notify': true }); 

$stateParams是空的,我不明白爲什麼它是空的。我曾嘗試將params對象放入狀態並解決。

$stateParams.entityname //undefined 

$stateParams.id //undefined 

回答

3

url選項應當存在有上狀態定義直接,不內的stateviews對象。但即使你的控制器不應該像你配置你的狀態一樣被調用。

代碼

.state('home.deletemsg', { 
    //url should present here, rather than putting it inside `views` 
    url: '/delete/:entityname/:id/:redirectstate', 
    views: { 
    "[email protected]": { 
    templateUrl: "Scripts/proteanapp/templates/delete.html", 
    controller: 'deletectrl', 
    controllerAs: 'del', 
    authenticate: true 
    } 
} 
+0

該死的,你是對的。我不知道我是如何錯過:) – Haris

+1

沒有後顧之憂。即使你的控制器應該被調用..我覺得你正在做的事情代碼 –

+0

是的,其他一切正常,因爲它應該是。 – Haris