角度显示类型错误:无法读取未定义的属性“状态”

angular showing TypeError: Cannot read property 'state' of undefined

本文关键字:未定义 属性 状态 读取 显示 类型 错误      更新时间:2023-09-26

我正在尝试通过使用angular 将路由添加到我的 rails 应用程序中的特定页面来学习路由,这将取代 ajax。下面是我得到的控制台错误。

未捕获的错误: [$injector:模块rr] 无法实例化模块 testApp 由于: 类型错误: 无法读取未定义的属性"状态"

这就是我的定义。

应用.js

app = angular.module("testApp", ['ui.router']);
app.config([
    function ($stateProvider, $urlRouterProvider) {
        $stateProvider
            .state('mylistings', {
                url: '/mylistings',
                templateUrl: '/views/mylistings.html',
                controller: 'dashboardCtrl'
            });
    }
]);
app.controller('dashboardCtrl', function ($scope, $http, $stateParams) {
$scope.testing="testdata"
});

我的列表.html

{{testing}}

在这种情况下,http://localhost:3000/dashboard是我想要路由的 url。有人可以告诉我这里做错了什么。

问题在于配置函数的定义。如果使用数组app.config([])这意味着要为准备缩小的依赖项编写安全代码。语法为:

app.config(['$arg1', '$arg2', function ($arg1, $arg2) {
   }]);

因此,当代码被缩小时,你会得到类似的东西:

app.config(['$arg1', '$arg2',function(a,b) {}]);

在 app 的示例中.js如果要编写安全用于缩小的代码(如果您不使用 ng-annotate),请将配置更改为以下代码:

app = angular.module("testApp", ['ui.router']);
app.config(['$stateProvider','$urlRouterProvider',
    function ($stateProvider, $urlRouterProvider) {
        $stateProvider
            .state('mylistings', {
                url: '/mylistings',
                templateUrl: '/views/mylistings.html',
                controller: 'dashboardCtrl'
            });
    }
]);
app.controller('dashboardCtrl', function ($scope, $http, $stateParams) {
  $scope.testing="testdata"
});

或者您可以从配置功能中删除[]

app.config(function ($stateProvider, $urlRouterProvider) {
 ...
}):