为什么我得到 JSFiddle 中不可用的错误模块?
Why I get error module not available in JSFiddle?
我声明这个模块:
angular.module('dashboard', [])
.controller('dashboardController', ['$scope',
function ($scope) {
$scope.data = "555";
}]);
这里是视图:
<div ng-app="dashboard" data-role="page" id="layersProperty" data-add-back-btn="true" >
<div ng-controller="dashboardController">
{{data}}
</div>
</div>
这里是 FIDDLE。
在控制台中我得到这个错误:
Error: [$injector:nomod] Module 'dashboard' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
知道为什么会出现上述错误吗?
基本上你的代码看起来不错,顺便检查一下它的工作情况Plnkr。
检查您的代码(是否包含 angular?)或 post 您的完整代码。
Plnkr 中的代码:
<!DOCTYPE html>
<html>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<div ng-app="dashboard" ng-controller="dashboardController">
{{ data }}
</div>
<script>
angular.module('dashboard', [])
.controller('dashboardController', ['$scope',
function($scope) {
$scope.data = "555";
}
]);
</script>
</body>
</html>
这是由于您在 JSFiddle 上设置的 javascript 加载类型。当您使用 onLoad
时,JSFiddle 会将您的 javascript 包装在 $(window).load(function (){});
块中。这意味着注册您的 Angular 应用程序的 angular.module()
代码将不会 运行 直到 DOM 被处理。所以 Angular 试图找到尚未创建的 dashboard
模块。
您的代码没有问题,因为您正在添加外部脚本,所以您只需要更改
Javascript settings -> Load type -> Wrap in <Head>
我声明这个模块:
angular.module('dashboard', [])
.controller('dashboardController', ['$scope',
function ($scope) {
$scope.data = "555";
}]);
这里是视图:
<div ng-app="dashboard" data-role="page" id="layersProperty" data-add-back-btn="true" >
<div ng-controller="dashboardController">
{{data}}
</div>
</div>
这里是 FIDDLE。
在控制台中我得到这个错误:
Error: [$injector:nomod] Module 'dashboard' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
知道为什么会出现上述错误吗?
基本上你的代码看起来不错,顺便检查一下它的工作情况Plnkr。
检查您的代码(是否包含 angular?)或 post 您的完整代码。
Plnkr 中的代码:
<!DOCTYPE html>
<html>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<div ng-app="dashboard" ng-controller="dashboardController">
{{ data }}
</div>
<script>
angular.module('dashboard', [])
.controller('dashboardController', ['$scope',
function($scope) {
$scope.data = "555";
}
]);
</script>
</body>
</html>
这是由于您在 JSFiddle 上设置的 javascript 加载类型。当您使用 onLoad
时,JSFiddle 会将您的 javascript 包装在 $(window).load(function (){});
块中。这意味着注册您的 Angular 应用程序的 angular.module()
代码将不会 运行 直到 DOM 被处理。所以 Angular 试图找到尚未创建的 dashboard
模块。
您的代码没有问题,因为您正在添加外部脚本,所以您只需要更改
Javascript settings -> Load type -> Wrap in <Head>