javascript - 无法使用带有 ui-router AngularJS View 的不同 Controller

标签 javascript angularjs node.js angular-ui-router

我正在使用 ui-router 来路由我的 Angular 应用程序。我有以下路线:

'use strict';

//Setting up route
angular.module('admins').config(['$stateProvider', 
    function($stateProvider) {
        // Admins state routing
        $stateProvider.
        state('admin_home', {
            url: '/admin',
            templateUrl: 'modules/admins/views/list-admins.client.view.html'
        }).
        state('adduser', {
            url: '/admin/create',
            templateUrl: 'modules/admins/views/create-admin.client.view.html', 
        }).
        state('viewAdmin', {
            url: '/admins/:adminId',
            templateUrl: 'modules/admins/views/view-admin.client.view.html'
        }).
        state('editAdmin', {
            url: '/admins/:adminId/edit',
            templateUrl: 'modules/admins/views/edit-admin.client.view.html'
        });
    }
]);

这是在我的“管理”模块中,并且有自己的 Controller (AdminsController)。

但是,我希望能够从这里创建一个新用户,并且执行此操作的 Controller 称为“AuthenticationController”,位于结构中的其他位置。

据我所知,我应该能够输入如下内容:

state('adduser', {
                url: '/admin/create',
                templateUrl: 'modules/admins/views/create-admin.client.view.html',
                controller:'AuthenticationController'

            })

它应该可以工作。

但是 - 我不断被重定向回索引页面。

我怀疑这可能是因为我使用的是 HTML5 并且我的配置中也有这个:

// use HTML 5
         $locationProvider.html5Mode(true).hashPrefix('!');
            //Sets the HTTP header type for the redirects
           $httpProvider.defaults.headers.common = {
            'Accept': 'application/json', 
            'Content-Type': 'application/json'

有人可以帮忙吗?

最佳答案

您应该添加:

$urlRouterProvider.otherwise("/home");

并在状态函数中(而不是在 View 文件中)声明您的 Controller ,如下所示:

 state('viewAdmin', {
        url: '/admins/:adminId',
        controller : AdminsController,
        templateUrl: 'modules/admins/views/view-admin.client.view.html'
 })

如果不起作用,请尝试删除:

 $locationProvider.html5Mode(true).hashPrefix('!');
            //Sets the HTTP header type for the redirects
 $httpProvider.defaults.headers.common = {
     'Accept': 'application/json', 
     'Content-Type': 'application/json'

让我知道;)

关于javascript - 无法使用带有 ui-router AngularJS View 的不同 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30385214/

相关文章:

javascript - 提交包含对象播放负载嵌套数组的 graphql 突变,值为 "aws-amplify"

javascript - 使用Javascript 修改HTML 代码中的mso 注释?

node.js - 无法在 Node js的 Controller 中获取表单发布数据

javascript - 如何以相同的形式保存req.body和req.file

javascript - 避免使用 eval() 动态构建事件处理程序

javascript - Niceform js 与 Grails 1.3.7

javascript - 从服务器获取数据的有效方法

css - 根据 AngularJS 中的条件将文本应用于悬停

javascript - AngularJS 按键事件监听器 - 不是输入元素

node.js - Node : Send Ctrl+C to a child process on Windows