AngularJs总结

angularJs在前端开发过程中是一件重器,它使得前端代码编辑简单,数据变化方便,尤其是可以让页面切换流畅。接下来我将在下面简单介绍在实战项目中如何使用angularJs。
首先,我们得在首页</body>上面引用它的js文件

<script src=".../plugins/angularJS/angular.js"></script>
<script src=".../plugins/angularJS/angular-ui-router-1.0.3.js"></script>

接下来,我们再在首页文件first.html中定义angular项目名称

<html lang="zh-CN" ng-app="viewApp">

再定义根controller的名称

<body ng-controller="appCtrl">

此时,我们就能在创建viewApp.js文件来操作整个页面了

<script src=".../js/viewApp.js"></script>

在viewApp.js里面我们必须在第一句写上

var viewApp = angular.module('viewApp', ['ui.router']);

在这一句的下方,我们就可以定义想要的模块了,我简单写了directive模块和controller模块,一下是示例

//directive模块
//angular中自定义标签
viewApp.directive('swapbox',function(){
   return {
       restrict: 'A',
       replace: true,
       template:
        '<div class="swapbox">'+
        '<div class="t_news">'+
        '<b><i class="iconfont"></i>最新动态:</b>'+
        '<ul class="news_li" style="top: 19px;">'+
        '<li><a href="">【温馨提示】网站支付教程请点击这里</a></li><li><a href="">【13163296359】购买了两套猪哥靓!</a></li><li><a href="">【13163296359】购买了一套3G怀孕母猪智能饲喂器!</a></li><li><a href="">【最新消息】网站客服24小时在线!!!</a></li><li><a href="" >【公司动态】JYGA与中畜开展第一次交流会!</a></li></ul>'+
        '<ul class="swap" style="top: -18.7924px;">'+
        '<li><a href="">【温馨提示】网站支付教程请点击这里</a></li><li><a href="">【13163296359】购买了两套猪哥靓!</a></li><li><a href="">【13163296359】购买了一套3G怀孕母猪智能饲喂器!</a></li><li><a href="">【最新消息】网站客服24小时在线!!!</a></li><li><a href="" >【公司动态】中畜公司携手加拿大JYGA公司签订战略合作协议</a></li></ul>'+
        '</div>'+
        '</div>',
       link: function () {
               angular.element('.swap').html(angular.element('.news_li').html());
               var x = angular.element('.news_li');
               var y = angular.element('.swap');
               var h = angular.element('.news_li li').length * 19;
               setTimeout(b,3000);
               function b(){
                   t = parseInt(x.css('top'));
                   y.css('top', '19px');
                   x.animate({top: t-19 +'px'},'slow');
                   if(Math.abs(t) == h-19 ){
                       y.animate({top:'0px'},'slow');
                       z = x;
                       x = y;
                       y = z;
                   }
                   setTimeout(b,3000);
               };
       }
   }
});
//在angular中正确使用插件的简单方法
viewApp.directive('fancybox', function () {
    return {
        restrict: 'A',
        controller: function($scope) {
            $scope.openFancybox = function (url) {

             $.fancybox.open({
                 href : url,
                 title : '李明'
             });

            };
        }
    };
});
//controller模块
viewApp.controller('NewsCtrl', function($scope ,$http) {
    //amazeui的加载进度条
    $.AMUI.progress.start();
   //向后台传参数并返回值
    $http.get('.../getNewsList.action').then(
        function(success){
            $scope.news = success.data;
            $.AMUI.progress.done();
        },
        function(){
            alert('获取新闻列表失败!');
        }
    )

});

angularJs还有factory、service模块,这里不介绍。
接下来划重点,angular-ui-router路由,不废话贴代码


viewApp.config(
    [          '$locationProvider','$stateProvider', '$urlRouterProvider',
        function ($locationProvider,$stateProvider,   $urlRouterProvider ) {
          //解决地址栏出现!#
            $locationProvider.hashPrefix('');
            $urlRouterProvider
                .otherwise('/');
            $stateProvider
                .state('eliteTeam', {
                    url: '/eliteTeam',
                    templateUrl: 'static/frontPage/eliteTeam.html'
                })
                .state('knowZC', {
                    url: '/knowZC/:ord',
                    controller: 'knowZCCtrl',
                    templateUrl: 'static/frontPage/knowZC.html',
                    resolve : {
                        promiseObj : function($http,$stateParams){
                            return $http({
                                method : 'GET' ,
                                url : "static/frontPage/navigation/content/"+$stateParams.ord
                            });
                        }
                    }
                })
                .state('activitys', {
                    url: '/activitys/:id',
                    templateUrl: 'static/frontPage/activity.html',
                    controller: 'acContentCtrl',
                    resolve : {
                        promiseObj : function($http,$stateParams){
                            return $http({
                                method : 'GET' ,
                                url : "static/frontPage/activitys/content/"+$stateParams.id
                            });
                        }
                    }
                });


        }
    ]
);

angular验证完全不用写js

<form  name="formBuy" class="am-form" data-am-validator>
                 <legend>{{x.pName}}</legend>
                    <fieldset>
                     
                       <input   type="hidden" name="proName"  ng-model="buy.proName" value="{{x.pName}}"/>
                                                                                                                     
                        <div class="am-form-group">
                            <label for="form-valid-cusUnit">购买单位:</label>
                            
                            <input  placeholder="请输入您的单位名称或无" type="text" name="cusUnit" id="form-valid-cusUnit"
                                        ng-class="{'error': formBuy.cusUnit.$invalid && formBuy.cusUnit.$touched}"
                                        ng-model="buy.cusUnit"/>
                        </div>
                        <div class="am-form-group">
                            <label for="form-valid-cusName">您的姓名:</label>
                            
                                <input  placeholder="请输入您的姓名" type="text" name="cusName" id="form-valid-cusName"
                                        ng-class="{'error': formBuy.cusName.$invalid && formBuy.cusName.$touched}"
                                        required
                                        ng-model="buy.cusName"/>
                                <p class="error"     ng-if="formBuy.cusName.$error.required && formBuy.cusName.$touched">姓名不能为空</p>
                      

                        </div>
                        <div class="am-form-group">
                            <label for="form-valid-cusPhone">联系电话:</label>
                           
                                <input  placeholder="请输入您的联系电话" type="number" name="cusPhone" id="form-valid-cusPhone"
                                        ng-class="{'error': formBuy.cusPhone.$invalid && formBuy.cusPhone.$touched}"
                                        required
                                        ng-pattern="/^1[3,4,5,7,8]\d{9}$/"
                                        ng-model="buy.cusPhone"/>
                                <p class="error"     ng-if="formBuy.cusPhone.$error.required && formBuy.cusPhone.$touched">联系电话不能为空</p>
                                <p class="error"     ng-if="formBuy.cusPhone.$error.pattern  && formBuy.cusPhone.$touched">电话格式错误</p>
                         

                        </div>
                        <div class="am-form-group">
                            <label for="form-valid-cusEmail">邮箱地址:</label>
                         
                                <input  placeholder="请输入您的邮箱地址" type="email" name="cusEmail" id="form-valid-cusEmail"
                                        ng-class="{'error': formBuy.cusEmail.$invalid && formBuy.cusEmail.$touched}"
                                        required
                                        ng-pattern="/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/"
                                        ng-model="buy.cusEmail"/>
                                <p class="error"     ng-if="formBuy.cusEmail.$error.required && formBuy.cusEmail.$touched">邮箱地址不能为空</p>
                                <p class="error"     ng-if="formBuy.cusEmail.$error.pattern && formBuy.cusEmail.$touched">邮箱地址格式错误</p>
                        

                        </div>
                        <div class="am-form-group">
                            <label for="form-valid-cusAddress">收货地址:</label>
                          
                                <input  placeholder="请输入您的收货地址" type="text" name="cusAddress" id="form-valid-cusAddress"
                                        ng-class="{'error': formBuy.cusAddress.$invalid && formBuy.cusAddress.$touched}"
                                        required
                                        ng-model="buy.cusAddress"/>
                                <p class="error"     ng-if="formBuy.cusAddress.$error.required && formBuy.cusAddress.$touched">收货地址不能为空</p>
                           

                        </div>
                        <div class="am-form-group">
                            <label for="form-valid-proName">产品套数:</label>
                           
                                <input  placeholder="请输入您需要购买的产品套数" type="number" name="proNum" id="form-valid-proName"
                                        ng-class="{'error': formBuy.proNum.$invalid && formBuy.proNum.$touched}"
                                        required
                                        ng-model="buy.proNum"/>
                                <p class="error"     ng-if="formBuy.proNum.$error.required && formBuy.proNum.$touched">套数不能为空</p>
                        
                        </div>
                        <div class="am-form-group">
                            <label for="form-valid-cusNote">备注信息:</label>
                           
                                <textarea  rows="5" ng-model="buy.cusNote" id="form-valid-cusNote"></textarea>
                        </div>
                    </fieldset>
                    <div class="am-u-lg-4 am-u-lg-centered am-margin-bottom">
                        <input type="submit" class="btn btn-primary"
                               value="确定"
                               ng-disabled="formBuy.$invalid"
                               ng-click="CusBuyProSubmit();"
                        />
                    </div>
                </form>

前端页面动态数据加载,十分方便

<div class="am-u-sm-12 am-u-md-4 am-u-lg-3" ng-repeat="x in recruits | limitTo : 4">
                <div class="am-panel am-panel-primary">
                    <div class="am-panel-hd">{{x.rPosition}}</div>
                    <a href="#doc-oc-demo{{x.id}}{{x.id}}" data-am-offcanvas>
                        <div class="am-panel-bd"><pre style="color: #2aabd2">{{x.rContent}}</pre></div>
                    </a>

      </div>
 </div>

以上是非常简单的angular总结,用了实战中的代码,若有疑问和建议,请下方留言。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,928评论 6 509
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,748评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,282评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,065评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,101评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,855评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,521评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,414评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,931评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,053评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,191评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,873评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,529评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,074评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,188评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,491评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,173评论 2 357

推荐阅读更多精彩内容

  • 一、angular介绍 1、angular是Google公司提供的一套基于MVC结构的js开发工具,其核心功能就是...
    滴滴傲阅读 532评论 0 0
  • 通过AngularJS仿豆瓣一刻的案例:https://github.com/zhongxiaolian/doub...
    中小恋阅读 1,759评论 1 21
  • AngularJS是什么?AngularJs(后面就简称ng了)是一个用于设计动态web应用的结构框架。首先,它是...
    200813阅读 1,609评论 0 3
  • 官方网站 angular是什么:为动态web应用设计的结构框架; 核心的功能: 1,双向数据绑定:实现了model...
    源大侠阅读 384评论 0 0
  • 一本好书,就像一栋好房子,每个部分都要很有秩序地排列起来。每个重要部分都要有一定的独立性。就像我们看到的,每个单一...
    小狮子在路上阅读 153评论 0 0