组件化入门

网页结构和组件化:
           首先我们思考一下在常规网页开发时,网页的结构大概是什么样的?
        (1)上中下、左中右、上下、左右
        (2)上中下结构:上、下结构保持不变,中间部分内容发生变化
          组件化:将页面中可以重复使用的标签封装成一个组件,方便这一部分UI重复使用

          类似于JS中的函数,封装了一部分处理代码,通过函数调用就可以重复使用这些代码。

案例一:

<body ng-app="myApp">
<my-comp></my-comp>
</body>
<script>
    var app = angular.module("myApp", []);

    // 封装一个简单的组件
    app.component("myComp", {
        template:"<h1>组件化封装的内容<small>这是一个副标题</small></h1>"
    });
</script>
案例二:

<body ng-app="myApp">
<page-header></page-header>
<page-slide></page-slide>
<page-footer></page-footer>
<script>
    var app = angular.module("myApp", []);

    app.component("pageHeader", {
        template:"<h2>尊敬的用户{{username}},欢迎访问本系统</h2>",
        controller:function($scope) {
            $scope.username = "tom";
        }
    });

    app.component("pageSlide", {
        template:"<h2>这是一个侧边栏导航</h2>"
    });

    app.component("pageFooter", {
        template:"<h2>这是一个网页底部代码</h2>"
    });
</script>
</body>

过滤器及自定义过滤器

超级超级详细的介绍,请看下方代码:

<body ng-app="myApp">
<div ng-controller="myCtrl">
    <div ng-bind="name"></div>
    <div ng-bind="name | myfilter"></div>
</div>
<script>
    var app = angular.module("myApp", []);
    /*app.filter(name, fn):用于定义一个自定义过滤器
     * name:过滤器名称
     * fn:过滤器处理函数
     * */
    app.filter("myfilter", function() {
        /*
         * 过滤器中,直接return function(value) {}
         * 通过闭包函数来实现数据处理,固定语法结构!
         * value参数:第一个参数,用于接收要处理的数据:数据就是过滤器管道符前面变量中的数据
         */
        return function(value) {/*闭包函数中的value就是过滤器接收到的数据|就是准备过滤的数据*/
            /*
             * 这一部分主要是用来进行数据处理的
             */
            value = value.toUpperCase();
            /* 过滤器中数据处理完成,一定要返回输出*/
            return value;
        }
    });
    app.controller("myCtrl", function($scope) {
        $scope.name = "jerry";
    });
</body>
<body ng-app="myApp">
<div ng-controller="myCtrl">
    <div>
        <h3>排序输出</h3>
        排序关键词:<input type="text" ng-model="keyword">
        排序顺序:<input type="checkbox" ng-model="sort">倒序
        <br />
        <ul>
            <li ng-repeat="u in users | orderBy:keyword:sort">
                <span ng-bind="u.userID"></span>****
                <span ng-bind="u.username"></span>****
                <span ng-bind="u.nickname"></span>
            </li>
        </ul>
    </div>
    <div>
        <h3>字符串大小写转换过滤器</h3>
        <div ng-bind="name"></div>
        <div ng-bind="name | uppercase"></div>
        <div ng-bind="name | lowercase"></div>
    </div>
    <div>
        <h3>长度限制过滤器</h3>
        长度:<input type="text" ng-model="length"><br />
        位置:<input type="text" ng-model="index">
        <br />
        <ul>
            <li ng-repeat="u in users | limitTo:length:index">
                <span ng-bind="u.userID"></span>****
                <span ng-bind="u.username"></span>****
                <span ng-bind="u.nickname"></span>
            </li>
        </ul>
    </div>
    <div>
        <h3>JSON过滤器</h3>
        <p>
            把数据中的对象,转换成JSON字符串的格式输出展示到页面上
            经常能用于代码程序调试,使用较少!
        </p>
        <span ng-bind="users|json"></span>
    </div>
    <div>
        <h3>过滤输出</h3>
        关键词:<input type="text" ng-model="keyword">
        <br />
        <ul>
            <li ng-repeat="u in users | filter:keyword">
                <span ng-bind="u.userID"></span>****
                <span ng-bind="u.username"></span>****
                <span ng-bind="u.nickname"></span>
            </li>
        </ul>
    </div>
    <div>
        <h3>日期时间过滤器</h3>
        <div>
            原始输出:<span ng-bind="date"></span>
        </div>
        <div>
            日期格式化:<span ng-bind="date | date"></span>
        </div>
        <div>
            日期格式化:通常情况下,需要按照用户的要求进行输出,这时候就会附带参数
            y/M/d/h/m/s/E 年/月/日/时/分/秒/星期
            <br />
            <span ng-bind="date | date:'yyyy年MM月dd日 hh:mm:ss'"></span><br />
            <span ng-bind="date | date:'yyyy年MM月dd日'"></span><br />
            <span ng-bind="date | date:'hh:mm:ss'"></span><br />
        </div>
    </div>
    <hr>
    <h3>货币格式过滤器</h3>
    <div>
        原始输出数据的方式:<span ng-bind="price"></span>
    </div>

    <div>
        通过拼接输出数据的方式:¥<span ng-bind="price"></span>.00
    </div>
    <hr/>
    <div>

        <p>
            对于要展示的货币数据【原始数据就是数字】
            按照指定的货币格式进行输出
        </p>
        货币过滤器输出:<span ng-bind="price | currency"></span><br />
        货币过滤器输出:<span ng-bind="price | currency:'人命币¥'"></span><br />
        货币过滤器输出:<span ng-bind="price | currency:'¥':3"></span><br />
    </div>

</div>

<script>
    var app = angular.module("myApp", []);

    app.controller("myCtrl", ["$scope", function($scope) {
        $scope.price = 499.1213;
        $scope.date = new Date();
        $scope.name = "John Smith";
        $scope.users = [
            {userID:1, username:"cat", nickname:"tom"},
            {userID:2, username:"xiaofan", nickname:"张小凡"},
            {userID:3, username:"xiannv ", nickname:"李仙女"},
            {userID:4, username:"eran", nickname:"高而安"},
            {userID:5, username:"chunjie", nickname:"张纯洁"},
            {userID:6, username:"yueliang", nickname:"曾月亮"},
            {userID:7, username:"yue", nickname:"聂月月"},
            {userID:8, username:"jingyu", nickname:"小金鱼"},
            {userID:9, username:"shaoguo", nickname:"郑少国"},
            {userID:10, username:"pokong", nickname:"破空"},
            {userID:11, username:"lanpangzhi", nickname:"蓝胖纸"}
        ]
    }]);
</script>
</body>





                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值