AngularJS中的ng-controller是什么东东

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AngularJS中的ng-controller是什么东东相关的知识,希望对你有一定的参考价值。

 

在AngularJS中,ng-controller是最常用的directive。比如:

 

var app = angular.module("app",[]);
app.controlle("AppCtrl", function(){
    var app = this;
    app.people = [
        {"firstName":"", "lastName":""},
        ...
    ];
})

app.controller("FirstCtrl", function(){
    var first = this;
    first.message = "i am the first one";
})

app.controller("SecondCtrl", function(){
    var second = this;
    second.message = "i am the second one";
})

 

页面部分:

 

<body ng-controller="AppCtrl as app">
    <div ng-controller="FirstCtrl as first">
        {{first.message}}
    </div>
    <div ng-controller="SecondCtrl as second">
        {{second.message}}
    </div>
</body>

 

现在模拟一个ng-controller的directive

 

app.directive("myController", function(){
    return {
        scope: true,
        controller: ‘@‘
    }
})

 

可见,my-controller和ng-controlller工作原理是一样的。

页面部分使用my-controller

 

<body my-controller="AppCtrl as app">
    <div my-controller="FirstCtrl as first">
        {{first.message}}
    </div>
    <div my-controller="SecondCtrl as second">
        {{second.message}}
    </div>
</body>

 

所有的页面呈现都不变。

如果我们想让自定义的my-controller替代AngularJS默认的ng-controller,可以使用priority属性:

 

app.directive("myController", function(){
    return {
        scope: true,
        controller: ‘@‘,
        priority: 500
    }
})

 

默认的priority字段值是0.

 

以上是关于AngularJS中的ng-controller是什么东东的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS:ng-include 和 ng-controller

Angularjs,使用 data-ng-controller 和 ng-controller [重复]

angularjs学习笔记之一

angularjs中ng-controller中绑定对象

Angular-Material 、 AngularJS 、 TypeScript 、 Javascript 、 ng-controller 在我的 md-dialog 中无法访问

AngularJS - ng-include ng-controller 和范围不绑定