ng-controller与多控制器思想

1.ng-controller与多控制器思想
描述:能够看到angular的操作,实际上脚本代码都是写在controller之中的。而刚刚我们将所有的脚本都堆积到一个控制器中的操作虽然理解上变得容易,但是实际开发过程中则会造成灾难所以为了便于团队开发,为了便于维护 NG提出了【多控制器思想】
说明:
(1)多控制器思想:
类似于div中的布局思想,是将控制器按照页面的不同模块功能进行切分 一个控制器只用来控制一个功能模块,多个控制器之间互不影响,独立工作。
(2)优势:
分工明确,代码清晰,便于维护
当系统出现问题,能够立即定位到问题坐标
(3)弊端:
对于初学者而言,前期代码的架构会变得很繁琐,对初学者不是很友好。
强调:
(1)每一个控制器只要被声明,就必须通过.controller实现
即便控制器中没有代码,也必须写出。
(2)每一个控制器作用域可以认为是嵌套的,
即外层controller可以直接访问到内层controller内的NG变量
而同级controller之间互不影响
(3)对于程序,习惯上mainController作为用户默认加载页面的根控制器
有且仅有唯一一个

<!DOCTYPE html>
<html ng-app='app' ng-controller='mainController'>
<head>
    <meta charset='utf-8'/>
    <title>lesson6_angularJS多控制器思想与模块化编程架构</title>
    <link rel="stylesheet" type="text/css" href="bootstrap.min.css">
</head>
<body>
<br/><br/><br/>
<div class="container" ng-controller='commentController'>
    <div class="row">
        <div class="col-xs-3"></div>
        <div class="col-xs-6">
            <!-- 评论模块 -->
            <div class="input-group">
                <input type="text" class="form-control" ng-model='comt'>
                <span class='input-group-btn'>
                    <button class="btn btn-primary" ng-click='submitComment(comt)'>评论</button>
                </span>
            </div>
            <!-- 评论标题 -->
            <h2 ng-show='commentArr.length>0'>评论</h2>
            <!-- 评论内容 -->
            <ul class="list-group">
                <li class="list-group-item" ng-repeat='comment in commentArr track by $index'>
                    <span>{{comment}}</span>
                    <a href="javascript:;" class="btn btn-link" ng-click='deleteComment($index)'>删除本条评论</a>
                </li>
            </ul>
        </div>
        <div class="col-xs-3"></div>
    </div>
</div>
<ul ng-controller='namelistController'>
    <li ng-repeat='liInfo in liInfoList track by $index'>{{liInfo}}</li>
</ul>

<script src='angular.js'></script>
<script>
    var app = angular.module('app', []);
    app.controller('mainController', ['$scope', function ($scope){
    }]);
    //评论控制器
    app.controller('commentController', ['$scope', function ($scope){
        $scope.commentArr = [];
        //评论功能
        $scope.submitComment = function (comt){
            $scope.commentArr.push(comt);
            $scope.comt = '';
        };
        //删除评论
        $scope.deleteComment = function (index){
            $scope.commentArr.splice(index, 1);
        };
    }]);
    //名称列表控制器
    app.controller('namelistController', ['$scope', function ($scope){
        $scope.liInfoList = ['frank','lily','lucy','hanMeiMei'];
    }]);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • AngularJS是什么?AngularJs(后面就简称ng了)是一个用于设计动态web应用的结构框架。首先,它是...
    200813阅读 1,679评论 0 3
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,175评论 1 32
  • alicechaobaby阅读 116评论 0 0
  • 啊呸,一眼望去都是些戏精,你演得那么逼真,今年的金马奖、百花奖看来非你莫属了,说不定你还能连续蝉联三连冠呢! 出门...
    杨小二的基地阅读 420评论 0 9