为什么我得到 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>