当前位置: 首页 > 面试题库 >

在这个例子中,为什么ng-controller不能与函数一起使用?

惠文彬
2023-03-14
问题内容

我试图按照教程进行操作,但是此代码对我不起作用。有人可以解释为什么以及如何解决吗?我认为这与ng-controller有关,但不确定为什么。

<!doctype html>



<html ng-app>

<head>

<title>AngularJS 2</title>

<script src="angular.min.js"></script>

</head>



<body ng-controller="MyController">

    <h1>{{author.name}}</h1>

    <p>{{ author.title + ', ' + author.company }}</p>



<script>

function MyController($scope) {

        $scope.author = {

            'name' : 'Ray Villa',

            'title' : 'Staff Author',

            'company' : 'boss`enter code here`.com'

    }

}

</script>



</body>

</html>

问题答案:

您的代码无法与angular 1.3+一起使用,因为您正在将控制器定义为全局函数。

从AngularJS文档中:

从1.2迁移到1.3

控制器

由于3f2232b5,$
controller将不再在窗口上查找控制器。在控制器上查看窗口的旧行为最初旨在用于示例,演示和玩具应用程序。我们发现允许全局控制器功能会鼓励不良做法,因此我们决定默认禁用此行为。

要进行迁移,请向模块注册控制器,而不是将其公开为全局变量,而不是按以下方式定义控制器:

<html ng-app="myApp">

<head>

  <title>AngularJS 2</title>

  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>

</head>



<body ng-controller="MyController">

  <h1>{{author.name}}</h1>

  <p>{{ author.title + ', ' + author.company }}</p>



  <script>

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



    angular.module('myApp').controller('MyController', function ($scope) {

      $scope.author = {

        'name': 'Ray Villa',

        'title': 'Staff Author',

        'company': 'boss`enter code here`.com'

      }

    });

  </script>



</body>



</html>


 类似资料:
  • 预计此函数将无法typeCheck。然而,没有解释发生这种情况的原因。在GHCI中试用时,我得到了以下输出: 为什么会出现这种情况?

  • 问题内容: 有人可以向我解释为什么在这个简单示例中我无法获得当前选择的单选按钮。我正在尝试使用ng-repeat指令动态生成单选按钮,并使用ng- model获取当前选择的单选按钮。像这样: 模板: 控制器: 问题答案: 因为当它在放置指令的位置重复模板时,确实会在每次迭代中创建一个新的子范围(通常是继承的)。 那么当创建一个新的原型继承的子范围时会发生什么呢? 在子作用域中,它包含所有属性,其中

  • 导致上述语句中问题的代码

  • 我有两个片段。 第一个片段: 第二段: 第一个编译,但第二个不编译(错误消息:错误:值“x”在常量表达式中不可用。为什么?为什么< code>a在常量表达式中可用,而< code>x不可用? 该命令,用于编译。

  • 问题内容: 码: 上面的代码不起作用。当我单击#clicker时,它不会发出警报,也不会隐藏。我检查了控制台,没有任何错误。我还检查了JQuery是否正在加载,实际上是否正在加载。所以不确定是什么问题。我还执行了带有警报的文档就绪功能,并且该功能正常工作,因此不确定我在做什么错。请帮忙。谢谢! 问题答案: 您应该在一个块中添加javascript代码。 即 正如jQuery文档指出的那样:“在文档

  • 问题内容: 在研究Angularjs的FEQ时,我看到了以下文章: $ rootScope存在,但可以用于邪恶 Angular中的范围形成一个层次结构,原型通常是从​​树顶部的根范围继承。通常这可以忽略不计,因为大多数视图都有自己的控制器,因此也有自己的作用域。 有时,有些数据要对整个应用程序进行全局处理。对于这些,您可以像其他作用域一样在其上注入并设置值。由于作用域是从根作用域继承而来的,因此这