Javascript 获取父页没有参数的子页的$stateParams
我很难理解$stateParams是如何工作的。我可以在父页面上调用$stateParams服务。但是当我为它创建一个子页面(使用相同的控制器)并调用$stateParams时,我得到了一个空对象。我还注意到$statePrams将引用父页面(即使没有参数),这就是为什么我得到一个空对象的原因 下面是我的app.js的代码:Javascript 获取父页没有参数的子页的$stateParams,javascript,angularjs,view,angular-ui,state,Javascript,Angularjs,View,Angular Ui,State,我很难理解$stateParams是如何工作的。我可以在父页面上调用$stateParams服务。但是当我为它创建一个子页面(使用相同的控制器)并调用$stateParams时,我得到了一个空对象。我还注意到$statePrams将引用父页面(即使没有参数),这就是为什么我得到一个空对象的原因 下面是我的app.js的代码: app.config(function($stateProvider, $urlRouterProvider) { $urlRouterProvider
app.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider
.otherwise('/home');
$stateProvider
.state('home',
{
url: '/home',
templateUrl: './js/views/tableTmpl.html',
controller: 'tableCtrl'
})
.state('home.dashboard',
{
url: '/dashboard/:id',
templateUrl: './js/views/tableTmpl.html',
controller: 'tableCtrl'
});
以下是控制器的代码:
app.controller('tableCtrl', function($scope, tableService, uiGridConstants, $stateParams){
console.log($stateParams); //getting empty object
console.log($stateParams.id); //getting undefined, this is because the object is empty
}
任何帮助都将不胜感激。谢谢告诉我为什么要将同一控制器分配给父状态和子状态?这是个好问题。这只是因为它们共享相同的函数/方法。一般来说,这是一个糟糕的代码设计(架构上)?是的…这是一个非常糟糕的设计。。。父状态控制器应具有一般功能,子控制器将具有特殊功能,该功能只能与仅限子状态控制器相关。谢谢@PankajParkar。我会做些改变,看看是否有效。所以从技术上讲,如果我分开页面,那么它应该工作吗?(也就是说,问题是因为我使用的是同一个控制器)不,这不是问题。请尝试此建议并返回此处。如果您仍然发现任何问题,请告诉我为什么将同一控制器分配给父级和子级状态?这是一个好问题。这只是因为它们共享相同的函数/方法。一般来说,这是一个糟糕的代码设计(架构上)?是的…这是一个非常糟糕的设计。。。父状态控制器应具有一般功能,子控制器将具有特殊功能,该功能只能与仅限子状态控制器相关。谢谢@PankajParkar。我会做些改变,看看是否有效。所以从技术上讲,如果我分开页面,那么它应该工作吗?(也就是说,问题是因为我使用的是同一个控制器)不,这不是问题。试试这个建议,然后回到这里。如果你仍然发现任何问题