首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >角度控制器未注册错误

角度控制器未注册错误
EN

Stack Overflow用户
提问于 2016-11-21 20:55:08
回答 8查看 95.6K关注 0票数 27

我是Angular JS的新手,我正在使用它的1.6版本。

我有这个apptest.js脚本:

代码语言:javascript
复制
var myApp = angular.module("myApp", []);

(function(){
    "use strict";
    myApp.controller("productController", function($scope, $http)

    {
        $http.get('data/data.json').then(function(prd)
        {
            $scope.prd = prd.data;
        });
    });
});

下面是我的data/data.json数据:

代码语言:javascript
复制
[
  {
    "id":"1",
    "title":"20 Foot Equipment Trailer",
    "description":"2013 rainbow trailer 20 feet x 82 inch deck area, two 5,000 lb axels, electric brakes, two pull out ramps, break away box, spare tire.",
    "price":6000,
    "posted":"2015-10-24",
    "contact": {
      "name":"John Doe",
      "phone":"(555) 555-5555",
      "email":"johndoe@gmail.com"
    },
    "categories":[
      "Vehicles",
      "Parts and Accessories"
    ],
    "image": "http://www.louisianasportsman.com/classifieds/pics/p1358549934434943.jpg",
    "views":213
  }
]

下面是我指定ng-app和ng-controller的html页面:

代码语言:javascript
复制
<body ng-app="myApp" ng-controller="productController">
<div class="row">
    <nav class="navbar navbar-default">
      <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Brand</a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav">
            <li class="active"><a href="#">Add <span class="sr-only">(current)</span></a></li>
          </ul>
          <form class="navbar-form navbar-left">
            <div class="form-group">
              <input type="text" class="form-control" placeholder="Search">
            </div>
            <button type="submit" class="btn btn-default">Submit</button>
          </form>
        </div><!-- /.navbar-collapse -->
      </div><!-- /.container-fluid -->
    </nav>

    <div class="col-sm-4" ng-repeat="product in prd">
        <div class="panel panel-primary">
            <div class="panel-heading">{{product.title}}</div>
            <div class="panel-body">
                <img ng-src="{{product.image}}">
                {{product.price | currency}}
                {{product.description}}
            </div>
            <div class="panel-footer">a</div>
        </div>
    </div>
</div>

<script src="angular/angular.js"></script>
<script src="scripts/appTest.js"></script>
</body>

我仍然收到以下错误,这对我来说是新的:

angular.js:14239错误:$controller:ctrlreg名为'productController‘的控制器未注册。http://errors.angularjs.org/1.6.0-rc.0/$controller/ctrlreg?p0=productController

任何帮助都是非常感谢的。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2016-11-21 20:58:21

这是因为你的Immediately Invoked Function Expression。你必须像下面这样修改它:

代码语言:javascript
复制
var myApp = angular.module("myApp", []);

(function(app){
  "use strict";
  app.controller("productController", function($scope, $http){
    $http.get('data/data.json').then(function(prd){
      $scope.prd = prd.data;
    });
  });
})(myApp);
票数 23
EN

Stack Overflow用户

发布于 2017-01-30 03:04:08

只需将文件导入index.html即可,

代码语言:javascript
复制
<script src=".../productController.js"></script>
票数 21
EN

Stack Overflow用户

发布于 2017-02-05 22:27:16

在我的例子中,它在索引页中缺少引用,而且我的控制器名称是startupController (注意小写的s),我试图用StartupController注册它(大写的s)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40720733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档