结合 ng-admin 和 ui-router

Combine ng-admin and ui-router

我有 AngularJS(1.4.9) 项目是使用 ui-router 构建的,很少有这样的状态:

.state('overview', {
  url: '/overview',
  parent: 'dashboard',
  templateUrl: 'views/dashboard/overview.html'
})
.state('settings', {
  url: '/settings',
  parent: 'dashboard',
  templateUrl: 'settings/views/index.html',
  controller: "SettingsCtrl"
})

现在我想添加想要集成 ng-admin(0.9.1) 到它。我已经按照 docs 中的描述,将其作为独立应用程序使用独立 html 进行了测试,并且可以正常工作。但是我找不到将它添加到当前项目的方法。

您必须使用 ng-admin 更改您的应用父状态,如下所示

// from
myApp.config(function ($stateProvider) {
    $stateProvider.state('send-post', {
        parent: 'main',
        url: '/sendPost/:id',
        params: { id: null },
        controller: sendPostController,
        controllerAs: 'controller',
        template: sendPostControllerTemplate
    });
});

// to
myApp.config(function ($stateProvider) {
    $stateProvider.state('send-post', {
        parent: 'ng-admin', // <= this has changed
        url: '/sendPost/:id',
        params: { id: null },
        controller: sendPostController,
        controllerAs: 'controller',
        template: sendPostControllerTemplate
    });
});

参考更新文档ng-admin

我的 'just works' 解决方案是添加到主项目状态 ng-admin 的外部 link:

  .state('database', {
      onEnter: function($window) {
          $window.open('/ng-admin/ng-admin.html', '_self');
      }
  })