【问题标题】:Angular stops working When i use ng-controller in the html tag [duplicate]当我在 html 标签中使用 ng-controller 时,Angular 停止工作 [重复]
【发布时间】:2015-06-28 20:26:36
【问题描述】:

我是Angular.js 的新手,并开始在plunker.co 上学习角度。问题是当我在 html 页面的任何标签中使用 ng-controller 时,angular 停止工作。我的意思是{{ 4+4 }} 在使用ng-controller 之后显示。

这是来自Plunker.co的代码

<html ng-app>

  <head>
    <script data-require="angular.js@1.3.15" data-semver="1.3.15" 
    src="https://code.angularjs.org/1.3.15/angular.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body ng-controller="MainController">
    <h1>Hello Plunker!</h1>
    {{8*8}}
{{message}}

  </body>

</html>

没有ng-controller,它显示64作为输出,但有ng-controller,它就像{{8*8}}一样显示。为什么会这样。请给一些建议。提前谢谢。 :)

script.js

var MainController = function($scope){
  $scope.message = "Hello World!";
}

已编辑 现在message attirbute 值未显示在页面上。

【问题讨论】:

  • ng-controller="yourControllerName" 在 script.js 中定义。它是按原样显示的,因为它会导致错误和角度停止运行。
  • 但我也试过这个。什么都没有发生。
  • 还有 ng-app="yourApp" 名称。并请链接到 plnkr。所以可以指出什么是错的。 script.js 应该像 angular.module('yourApp', []).controller('yourControllerName', function($scope) {})
  • @SandeepNayak 谢谢。现在它的工作。
  • 我在全局范围内定义控制器。

标签: javascript angularjs


【解决方案1】:

首先尝试为您的应用设置名称:

<html ng-app="myApp">

然后为您的控制器设置一个名称:

<body ng-controller="MainController">

最后,您需要做的就是定义您的应用:

myApp = angular.module('myApp', []);

并为您的控制器尝试此定义:

myApp.controller('MainController', function($scope) {
    $scope.message = "Hello World!";
});

【讨论】:

  • thanx 现在可以正常工作了。谢谢。
  • 一个错字,应该是 myApp = angular.module('myApp', []);
【解决方案2】:

ng-controller 需要一个参数,该参数是您的角度代码中定义的控制器的名称。像ng-controller=foo 这样的东西。你应该 read up 更多地了解控制器的工作原理

【讨论】:

  • 我更新了我的问题,请检查一下。
【解决方案3】:

我不确定您是否可以在没有名称的 AngularJS 控制器中使用。请为您的控制器设置一个名称,它应该可以工作。

【讨论】:

    【解决方案4】:

    你是什么意思这一切都有效? http://jsfiddle.net/4xfq2xLu/2/

    <div ng-app>
    <div ng-controller="MainController">
        <h1>Hello Plunker!</h1>
        {{8*8}}
    {{message}}  </div>
    </div>
    

    JS

    var MainController = function($scope){
      $scope.message = "Hello World!";
    }
    

    【讨论】:

    • 在 plunker 上它不工作
    • 想通了,一定是版本的问题:尝试加载 1.2.1 并且使用 plunker 也可以正常工作。
    • 问题已解决。我在全局范围内定义控制器。 .
    • 是的,但在早期版本中是可能的。小提琴停止也适用于 1.3+ jsfiddle.net/4xfq2xLu/3
    猜你喜欢
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多