Angularjs 角度路由器UI子控制器未启动
在下面的路由定义中,如果我转到#/systemadmin/edit/Testing,它将显示SystemAdminController,但不是我正在使用的子路由中定义的。我错过了一些东西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
$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。