当Controller在单独的文件中时,App不会加载

时间:2016-11-04 09:26:39

标签: javascript jquery html angularjs angular-controller

这是我的问题的补充:AngularJS Doesn't Resolve An Array of Objects

正如我在最后的编辑中所述:

  

我已经通过将控制器放在app所在的同一个文件中解决了这个问题   已定义 - app.js。当放在单独的文件夹中时,它无法正常工作。   我不知道为什么在这一点上。

但为什么会这样呢?我已多次尝试过,当控制器位于单独的文件中时,应用无法加载 - js/controller.js。我检查了路径,这是正确的。

这是应用程序:

这是我的HTML:

<body data-ng-app="App">
*
*
*

<div ng-controller="Ctrl">
     <p>{{obj.desc}}</p>
</div>

*
*
*
</body>

app.js

var app = angular.module('App', []);

controller.js

app.controller('Ctrl', function($scope) {
    $scope.obj = [
          {
                intro: "intromessage",
                desc: "desc"
          },
          {
                intro: "intromessage2",
                desc: "desc"
          }
       ];
   });

2 个答案:

答案 0 :(得分:1)

假设正确加载controller.js。您需要在新文件中定义var app

var app = angular.module('App'); //Continue your app module
app.controller('Ctrl', function($scope) {
    $scope.obj = [
          {
                intro: "intromessage",
                desc: "desc"
          },
          {
                intro: "intromessage2",
                desc: "desc"
          }
       ];
   });

答案 1 :(得分:1)

你可以轻松解决这个问题。您必须在js文件中进行小修改。

app.js

var app = angular.module('App', []);
app.controller('Ctrl',homeController);

controller.js

var homeController = function($scope) {
$scope.obj = [
      {
            intro: "intromessage",
            desc: "desc"
      },
      {
            intro: "intromessage2",
            desc: "desc"
      }
   ];
   }

这对你有用。确保在布局页面中包含app js之前的控制器js

示例:

<script src="~\controller.js"></script> <!--first-->
<script src="~\App.js"></script> <!--second-->