Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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
Angularjs 在执行angular.bootstrap之前,是否需要创建angular模块?_Angularjs - Fatal编程技术网

Angularjs 在执行angular.bootstrap之前,是否需要创建angular模块?

Angularjs 在执行angular.bootstrap之前,是否需要创建angular模块?,angularjs,Angularjs,我见过两种启动AngularJS的不同方式: ng app=“TodoApp” angular.bootstrap(angular.element(“body”)[0],“TodoApp”] 首先,有人能告诉我这两者是否相同吗 我还看到以下代码: var TodoApp = angular.module('TodoApp', ['ngResource']); 在发出angular.bootstrap命令之前,是否必须加载上面的代码 这两行代码是相同的(假设您的主体元素上有ng应用程序) 您

我见过两种启动AngularJS的不同方式:

  • ng app=“TodoApp”
  • angular.bootstrap(angular.element(“body”)[0],“TodoApp”]
首先,有人能告诉我这两者是否相同吗

我还看到以下代码:

var TodoApp = angular.module('TodoApp', ['ngResource']);
在发出angular.bootstrap命令之前,是否必须加载上面的代码

  • 这两行代码是相同的(假设您的
    主体
    元素上有ng应用程序)

  • 您应该按照以下顺序执行:

  • 包括angular.js
  • 包括所有代码(控制器等)
  • 呼叫引导
  • 注意,在调用bootstrap之后,您不能定义新模块(至少现在是这样,因为没有动态模块加载和延迟加载)。这是因为加载AngularJS应用程序需要几个步骤——配置和运行。运行后,无法运行其他模块的配置步骤。

    ng:app 指令*ng:app可用于自动引导应用程序。 可以在HTML中放置多个ng应用程序指令,但只有第一个指令将用于引导应用程序,而其他指令将被忽略。找到第一个
    ng:app
    指令的元素将成为AngularJS应用程序的“根”(这是连接
    $rootScope
    的地方)

    [使用ng:app]Angular在DOMContentLoaded事件发生时自动初始化

    *虽然
    ng:app
    的使用方式与其他指令类似,但它不是
    ng
    模块的一部分,并且它的定义方式与其他角度指令的定义方式不同。

    角自举 另一方面,通过手动引导,您可以在同一页面内初始化多个不同的Angular应用程序

    需要执行此操作的示例包括使用脚本加载程序或在Angular编译页面之前需要执行操作。

    因此,如果您想使用脚本加载器(如RequireJS),那么在RequireJS runner方法中,您需要通过调用
    angular.bootstrap(…
    )来初始化angular应用程序

    Angular.bootstrap命令允许您将模块依赖项指定为第二个参数。 该函数的签名为:

    angular.bootstrap(元素[,模块]);
    
    如果要手动引导应用程序,则必须在依赖项数组中指定主angular模块的名称(angular.bootstrap调用的第二个参数):

    此外,手动引导允许您在初始化angular应用程序之前在angular应用程序外部进行一些预处理和配置。

    装载顺序 回答问题的第二部分:是的,在调用
    angular.bootstrap
    之前,您需要加载并执行模块

    angular.module('TodoApp', ['ngResource']);
    angular.bootstrap(document, ['TodoApp']);
    
    angular.module('TodoApp', ['ngResource']);
    angular.bootstrap(document, ['TodoApp']);