Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS简单控制器不工作_Javascript_Angularjs_Controller - Fatal编程技术网

Javascript AngularJS简单控制器不工作

Javascript AngularJS简单控制器不工作,javascript,angularjs,controller,Javascript,Angularjs,Controller,我试图使用控制器运行一个简单的角度示例。然而,它似乎不起作用 以下是HTML: <!DOCTYPE html> <html ng-app = "app"> <head> <title></title> <script type="text/javascript" src="js/lib/angular.min.js"></script> <script

我试图使用控制器运行一个简单的角度示例。然而,它似乎不起作用

以下是HTML:

    <!DOCTYPE html>
    <html ng-app = "app">
    <head>
        <title></title>
        <script type="text/javascript" src="js/lib/angular.min.js"></script>
<script type="text/javascript" src="js/my.js"/> 
    </head>
    <body>
    <label for = "fname">Name:</label><input type="text" id="fname" ng-model="name"/>{{name}}
    <div class="container" ng-controller="SimpleController">
        <ul>
            <li ng-repeat="hero in heroes">{{hero.name}} - {{hero.city}}</li>
        </ul>
    </div>
    </body>
    </html>
在我的本地系统上,ng模型指令起作用。但是控制器没有。 我使用的是1.4.x稳定的角度js

我试着问了另一个问题,并按照答案的建议做了,但仍然没有结果。 那么我做错了什么


也创造了一个新的世界。尽管处于混乱状态,但即使ng模型也无法工作。

您尚未将$scope正确注入控制器。您必须在数组中放入“$scope”。试试这个:

angular.module("app",[]).controller('SimpleController',['$scope', function ($scope){
// Your Stuff
}]);
补充评论

虽然可以像线程中的其他答案一样,将控制器函数作为第二个参数传递,但如果您想在生产过程中缩小代码,我建议使用这种方法传递一个带有依赖项和控制器函数的数组


缩小程序在缩小过程中会频繁更改变量名,此方法可确保在此之后依赖项仍然有效。

您的控制器应类似于:

 angular.module("app",[]).controller('SimpleController',function ($scope){
    $scope.heroes =  [
      {name:"Bruce Wayne", city:"Gotham"},
      {name:"Kal-El", city:"Metropolis"},
      {name:"Barry Allen", city:"Central City"},
      {name:"Kara Jor-El", city:"National City"},
      {name:"Shazam", cuty:"Fawcett City"}
    ];
});

如果您使用的是AngularJS的现代版本 我建议使用ControllerAs语法:


要修复小提琴,请将ng app=app属性添加到小提琴的开头标记。您只需将ng应用程序添加到bodytag@NarendarCM,谢谢你帮我修理小提琴。我真是太傻了{{hero.name}-{{hero.city}你的意思是我猜,它工作得完美无缺。谢谢:所以我遵循的指南建议,“$scope”可以直接作为参数传递。我相信早期版本就是这样。正确吗?@neo.one要直接传递$scope,请直接传递控制器函数作为第二个参数,而不是数组。当您将数组作为第二个参数传递时,您将以这种方式传递参数
 angular.module("app",[]).controller('SimpleController',function ($scope){
    $scope.heroes =  [
      {name:"Bruce Wayne", city:"Gotham"},
      {name:"Kal-El", city:"Metropolis"},
      {name:"Barry Allen", city:"Central City"},
      {name:"Kara Jor-El", city:"National City"},
      {name:"Shazam", cuty:"Fawcett City"}
    ];
});
<div class="container" ng-controller="SimpleController as simpleController">
    <ul>
        <li ng-repeat="hero in simpleController.heroes">{{hero.name}} - {{hero.city}}</li>
    </ul>
</div>
angular.module("app",[]).controller('SimpleController',function (){
    this.heroes = [
        {name:"Bruce Wayne", city:"Gotham"},
        {name:"Kal-El", city:"Metropolis"},
        {name:"Barry Allen", city:"Central City"},
        {name:"Kara Jor-El", city:"National City"},
        {name:"Shazam", cuty:"Fawcett City"}
     ];

  }]);