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

为什么最新版本的angular不支持全局控制器功能?

柳胜
2023-03-14
问题内容

AngularJs的新版本1.3.0不支持,而旧版本的支持1.2.9。新版本有什么新功能?

<html ng-app>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="angular.min.js"></script>
        <script type="text/javascript" src="jquery.js"></script>
    </head>
    <body>
        <div ng-controller = "MyController">
            <h1>{{author.name}}</h1>
            <p>{{ author.title }}</p>
        </div>

        <script>

            function MyController($scope) {
                $scope.author = {
                    'name': 'Nagy Dávid',
                    'title': 'Demo',
                }
            }
        </script>
    </body>
</html>

问题答案:

angular v1.3.0-beta.15中
发生了重大变化,因此,默认情况下,angular将不再在窗口上寻找控制器。有关更多详细信息,请参见3f2232b5。

With the exception of simple demos, it is not helpful to use globals
for controller constructors. This adds a new method to `$controllerProvider`
to re-enable the old behavior, but disables this feature by default.

BREAKING CHANGE:
`$controller` will no longer look for controllers on `window`.
The old behavior of looking on `window` for controllers was originally intended
for use in examples, demos, and toy apps. We found that allowing global controller
functions encouraged poor practices, so we resolved to disable this behavior by
default.

To migrate, register your controllers with modules rather than exposing them
as globals:

因此,要使示例工作而无需创建自己的模块(尽管不建议这样做),可以在底部的script标记中添加以下代码:

angular.module('ng').config(function ($controllerProvider) {
  $controllerProvider.allowGlobals();
});

有关工作示例,请参阅下面的插件。

例子: http

://plnkr.co/edit/xdlfJRpH8lHzNvqyQ0no?p
= preview



 类似资料:
  • 我正在尝试用Gradle2.14.1编译一个Spring Boot1.3.6.Release应用程序的基本框架。我需要使用Java6。我不能升级到Java7或8。 为什么我得到一个失败的gradle构建 我已经跟随了关于Java6 IE的Spring引导参考指南中的更新。若要使用Tomcat7而不是8,请执行以下操作。我不使用JTA。

  • [root@PPWFMD509bin]#./线程“main”java.lang.UnsupportedClassVersionError:org/apache/cassandra/cli/CliMain:Unsupported major中的cassandra cli异常。在java.lang.ClassLoader的51.0次要版本。java.lang.ClassLoader.defineCla

  • 我使用< code>flyway社区版< code > 5 . 2 . 3版已经有一段时间了。我们最近刚刚尝试将flyway升级到< code > 8.2版。升级到8.2版后,对< code>MySQL 5.7的执行抛出一个< code >错误,指出 “错误:Flyway Teams Edition或MySQL升级需要:Flyway Community Edition不再支持MySQL 5.7,但

  • Gson提供@Since注释来控制基于其各种版本的类的Json序列化/反序列化。 考虑以下具有版本控制支持的类。 在这个类中,我们最初定义了两个变量rollNo和name以及稍后,我们添加了verified为新变量。 使用@Since,我们已经定义了版本1.0的rollNo和name ,并验证了版本1.1。 class Student { @Since(1.0) private i

  • 问题内容: 我开始使用Node.js,并且很难确定节点支持哪种JavaScript版本,这使得很难确定可以使用哪些功能。这就是我所知道的。 节点使用V8 V8实现了ECMA-262,第3版中指定的ECMAScript ECMA-262,第三版是JavaScript 1.5 鉴于此,我假设我可以在节点中使用JavaScript 1.5兼容代码。但是,事实证明我可以使用,以及其他结构,即使根据MDC,

  • 你可以把一个版本控制系统(缩写VCS)理解为一个“数据库”,在需要的时候,它可以帮你完整地保存一个项目的快照。当你需要查看一个之前的快照(称之为“版本”)时,版本控制系统可以显示出当前版本与上一个版本之间的所有改动的细节。 版本控制与项目的种类,使用的技术和基础框架并无关系: 无论是设计开发一个HTML网站或者是一个苹果应用,它的工作原理都是一样的。 你可以选择任何你喜欢的工具来工作,它并不关心你