Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取父页没有参数的子页的$stateParams_Javascript_Angularjs_View_Angular Ui_State - Fatal编程技术网

Javascript 获取父页没有参数的子页的$stateParams

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

我很难理解$stateParams是如何工作的。我可以在父页面上调用$stateParams服务。但是当我为它创建一个子页面(使用相同的控制器)并调用$stateParams时,我得到了一个空对象。我还注意到$statePrams将引用父页面(即使没有参数),这就是为什么我得到一个空对象的原因

下面是我的app.js的代码:

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。我会做些改变,看看是否有效。所以从技术上讲,如果我分开页面,那么它应该工作吗?(也就是说,问题是因为我使用的是同一个控制器)不,这不是问题。试试这个建议,然后回到这里。如果你仍然发现任何问题