Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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
Angularjs 角度路由器UI子控制器未启动_Angularjs_Angular Ui Router - Fatal编程技术网

Angularjs 角度路由器UI子控制器未启动

Angularjs 角度路由器UI子控制器未启动,angularjs,angular-ui-router,Angularjs,Angular Ui Router,在下面的路由定义中,如果我转到#/systemadmin/edit/Testing,它将显示SystemAdminController,但不是我正在使用的子路由中定义的。我错过了一些东西 $stateProvider.state('systemadmin', { url: '/systemadmin', controller: 'SystemAdminController', templateUrl: 'app/templates/SystemAdmin.html?v=' + dl.build

在下面的路由定义中,如果我转到#/systemadmin/edit/Testing,它将显示SystemAdminController,但不是我正在使用的子路由中定义的。我错过了一些东西

 $stateProvider.state('systemadmin', { url: '/systemadmin', controller: 'SystemAdminController', templateUrl: 'app/templates/SystemAdmin.html?v=' + dl.buildDate })
        .state('systemadmin.edituser', { url: '/edit/:selectedUser', controller: function ($scope, $stateParams) { debugger; }, templateUrl: 'app/templates/SystemAdmin.html?v=' + dl.buildDate });
有几件事:

  • 您的子状态控制器缺少一个
    $scope
    ,所有控制器都需要一个
    $scope

  • 当您转到
    edituser
    时,也将执行
    systemadmin
    控制器以及
    edituser
    控制器

  • 编辑

    此外,您需要在路由定义中使用大括号而不是冒号来定义参数,即
    ng route
    语法而不是
    ui.router

    {url:'/edit/{selectedUser}}


    另一件让人怀疑的事情是,您可能遗漏了,正如我多次提到的那样,您的父状态视图本身需要有一个
    ui视图。

    您所说的“显示”是什么意思?父控制器将执行,子控制器也将执行。子控制器从不执行。如果您签出子控制器,它只是一个接收$stateParams并在调试器处停止的函数。这永远不会发生。看看我的答案。您需要为子控制器注入$scope。我将scope添加到子控制器。这并没有纠正它没有实例化的错误。如果我将其设置为非子级,我将点击调试器。您是否将参数传递给子级状态,因为在路由定义中,您明确声明需要一个
    selecteduser
    参数。我正在我的地址栏中键入此参数:。在父控制器中是否需要执行某些操作才能将其传递给子控制器?不需要,您应该能够使用
    $stateParams访问子控制器中的参数。selecteduser
    @LRFalk01查看我的编辑和我提供的plunk。