我已经使用 Angular 1.4.4 完成了快速客户端路由。在每个教程中,我都看到将模块分配给变量(通常:应用程序)并对其执行不同任务的方法,如下所示:
var app = angular.module('skeleton', [ngResource, ngRoute]);
app.config(function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
$routeProvider
.when('/', {
templateUrl: '/partials/main',
controller: 'MainController'
});
});
app.controller('MainController', function ($scope) {
$scope.test = 'Hi Angular';
});
在我现在正在做的教程中,我看到了完全不同的方法:
angular.module('skeleton', ['ngResource', 'ngRoute']);
angular.module('skeleton').config(function($routeProvider, $locationProvider){
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
$routeProvider
.when('/', { templateUrl: '/partials/main', controller: 'mainCtrl'});
});
angular.module('skeleton').controller('mainCtrl', function($scope){
$scope.test = "Hello Angular";
});
我认为这只是偏好,所以我选择了“app”版本,因为我发现它更具可读性。 不幸的是,它会导致 Angular 抛出
ReferenceError: ngResource is not defined
- 有人知道造成这种行为的原因吗?
- 您更喜欢哪种方法?
最佳答案
您需要正确注入(inject)依赖项,在引号内传递 ngResource
和 ngRoute
,否则它们将被视为变量,因此您一定会收到错误。
var app = angular.module('skeleton', ['ngResource', 'ngRoute']);
关于javascript - 为什么 Angular 返回引用错误 : ngResource is not defined?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35114264/