ng-init和控制器初始化有什么区别?

时间:2019-01-16 07:15:35

标签: angularjs

有两种方法可以在Angular中初始化变量。

一种方法是使用 ng-init

<html>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"> 
    </script>
    <body>
        <div ng-app="" ng-init="firstName='John'">
            <p>Name: {{ firstName }}</p>
        </div>
    </body>
</html>

另一种方法是使用控制器

<html>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js">
    </script>
    <body>
        <p ng-app="myApp" ng-controller="myCtrl">
            Name: {{ firstName }}
        </p>
        <script>
            var app = angular.module("myApp", []);
            app.controller("myCtrl", function($scope) {
                $scope.firstName = "John";
            });
        </script>
    </body>
</html>

前者比后者简单,但是,我认为第二个更为普遍。

那么这些方法之间有什么区别,哪种更好?

1 个答案:

答案 0 :(得分:0)

尝试此示例

ng-init:

ng-init 的目的是初始化模板中的属性。 区别在于,当HTML中包含ng-init时,init()函数将仅在页面的实际呈现期间被调用。如果出于任何原因需要重新渲染内容,将再次调用init()函数。

控制器:

AngularJS应用程序主要依靠控制器来控制应用程序中的数据流。 controller 是使用ng-controller指令定义的。控制器是一个JavaScript对象,其中包含属性/属性和函数。