为什么我在JSFiddle中得不到错误模块?

时间:2017-07-03 16:36:25

标签: angularjs 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

在控制台中我收到此错误:

  

错误:[$ injector:nomod]模块'仪表板'不可用!您要么错误拼写了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。

我知道为什么会出现上述错误?

3 个答案:

答案 0 :(得分:3)

您的代码没有问题,因为您只需要添加外部脚本来更改

<强> Javascript settings -> Load type -> Wrap in <Head> enter image description here

答案 1 :(得分:2)

这是由于您在JSFiddle上设置的javascript加载类型。当您使用onLoad时,JSFiddle会将您的javascript包装在$(window).load(function (){});块中。这意味着注册Angular应用程序的angular.module()代码在DOM处理完之后才会运行。所以Angular试图找到一个尚未创建的dashboard模块。

答案 2 :(得分:0)

基本上,您的代码看起来很不错,而且通过其工作方式检查它Plnkr

检查您的代码(您是否包含角度?)或只是发布完整代码。

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>