浅谈angularJs

  在家都知道,angular 可以实现双项数据绑定,其中它的占位符是{{}},他是是MVC数据分离,

  首先要在<html>或<body>中建一个<body ng-app="">

<p>我的第一个表达式: {{ 5 + 5
}}</p>

</body>

ng-app 指令用于告诉 AngularJS 应用当前这个元素是根元素。

所有 AngularJS 应用都必须要要一个根元素。

HTML 文档中只允许有一个 ng-app 指令,如果有多个 ng-app 指令,则只有第一个会被使用。

下面,我来具体用一个书画的实例来说明一下angular效果,SH首先要在项目的根目录下建一个index文件夹,<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-sacle=1.0" />
        <title></title>
        <link rel="stylesheet" href="css/bootstrap.min.css" />
        <link rel="stylesheet" href="css/bootstrap-theme.min.css" />
    </head>
    <body ng-app="myapp">
        <div ng-view></div>
        <nav class="navbar navbar-inverse navbar-fixed-bottom">
            <div class="container-fluid">
                <div class="row text-center">
                    <div class="col-md-3 col-sm-3 col-xs-3"><a href="#home" class="navbar-link"><img src="images/home.png" class="img-responsive center-block" />首页 </a></div>
                    <div class="col-md-3 col-sm-3 col-xs-3"><a href="#" class="navbar-link"><img src="images/tel.png" class="img-responsive center-block" />电话</a></div>
                    <div class="col-md-3 col-sm-3 col-xs-3"><a href="#contact" class="navbar-link"><img src="images/map.png" class="img-responsive center-block" />联系我们</a></div>
                    <div class="col-md-3 col-sm-3 col-xs-3"><a href="#about" class="navbar-link"><img src="images/guestbook.png" class="img-responsive center-block" />关于我们</a></div>
                </div>
            </div>

</nav>
        <div style="padding:50px;"></div>

<script src="js/jquery.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
        <script src="js/angular.js"></script>
        <script src="js/angular-route.js"></script>
        <script>
            var app=angular.module(‘myapp‘,[‘ngRoute‘]);
            app.config([‘$routeProvider‘,function($routeProvider){
                $routeProvider
                    .when(‘/home‘,{
                        templateUrl:‘view/home.html‘,
                        controller:‘indexController‘
                    })
                    .when(‘/contact‘,{
                        templateUrl:‘view/contact.html‘,
                        controller:‘‘
                    })
                    .when(‘/about‘,{
                        templateUrl:‘view/about.html‘,
                        controller:‘aboutController‘
                    })
                    .otherwise({redirectTo:‘/home‘})
                    
            }])

</script>
        <script src="controller/indexController.js"></script>
        <script src="controller/aboutController.js"></script>
    </body>
</html>

  然后要在view文件夹下面要建一个about子页面:<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-sacle=1.0" />
        <title></title>
        <link rel="stylesheet" href="../css/bootstrap.min.css" />
        <link rel="stylesheet" href="../css/bootstrap-theme.min.css" />
    </head>
    <body>
        <nav class="navbar navbar-inverse">
            <div class="col-md-2 col-md-push-5">
            <ul class="nav navbar-nav" >
                <li class="active dropdown">
                    <a href="javascript:;" data-toggle="dropdown" >关于我们 <span class="caret"></span></a>
                    <ul class="dropdown-menu nav nav-tabs" id="list">
                        <li><a href="#">项目1</a></li>
                        <li><a href="#">项目2</a></li>
                        <li><a href="#">项目1</a></li>
                        <li><a href="#">项目2</a></li>
                    </ul>
                </li>

</ul>
            </div>

</nav>

<div class="container">
            <div class="row">
                <div class="col-md-2"></div>
                <div class="col-md-8">
                    <div class="col-md-6" ng-controller="aboutController" ng-repeat="pencraft in subPencraft" >
                        <div class="thumbnail text-center">
                            <img src={{pencraft.img_about}} />
                            <h4>{{pencraft.tit_about}}</h4>
                        </div>
                    </div>
                </div>
            </div>
            <div class="row">
                <div class="col-md-2"></div>
                <div class="col-md-8">
                    <button class="form-control"> <img src="images/top.png"/> 回顶部</button>
                </div>
            </div>
        </div>
        <div class="container text-center">
            <p>&nbsp;</p>
            <img src="images/zw.gif" /><img src="images/english.gif" />
            <p>xxx新闻中心 版权所有</p>
        </div>
        
        <script src="../js/jquery.min.js"></script>
        <script src="../js/bootstrap.min.js"></script>
        <script>

</script>
    </body>
</html>

还要建一个联系我的子页面:<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-sacle=1.0" />
        <title></title>
        <link rel="stylesheet" href="../css/bootstrap.min.css" />
        <link rel="stylesheet" href="../css/bootstrap-theme.min.css" />
    </head>
    <body>
        <div class="container">
            <div class="row well">
                <div class="col-md-4"></div>
                <div class="col-md-4">
                    <div class="thumbnail">
                        <div class="caption">
                            <h2>联系我们</h2>
                            <p>电话:010-88888888</p>
                            <p>手机:13588888888</p>
                            <p>Email:[email protected]</p>
                            <p>地址:北京市海淀区学院里春天花园8栋906</p>
                            <textarea class="form-control" rows="9"></textarea>
                        </div>
                    </div>
                    <button class="form-control"> <img src="images/top.png"/> 回顶部</button>
                    <div class="text-center">
                        <p>&nbsp;</p>
                        <img src="images/zw.gif" /><img src="images/english.gif" />
                        <p>xxx新闻中心 版权所有</p>
                    </div>
                </div>
                
            </div>
            
        </div>
        
        
        <script src="../js/jquery.min.js"></script>
        <script src="../js/bootstrap.min.js"></script>
    </body>
</html>

  在项目新建一个controller文件夹,新建一个aboutController.js文件夹app.controller("aboutController",function($scope){

$scope.subPencraft=[
            {"img_about":"images/wenhua.png","tit_about":"天道酬勤"},
            {"img_about":"images/sp.png","tit_about":"宣传视频"},
        ]
})

还要建一个contactController.js文件夹app.controller("arryController",function($scope){

$scope.imga=[
        {"img_about":"images/15_l.jpg","about":"关于我们"},
        {"img_about":"images/20_l.jpg","about":"新闻资讯"},

{"img_about":"images/15_l.jpg","about":"关于我们"},
        {"img_about":"images/20_l.jpg","about":"新闻资讯"},

{"img_about":"images/15_l.jpg","about":"关于我们"},
        {"img_about":"images/20_l.jpg","about":"新闻资讯"},

{"img_about":"images/15_l.jpg","about":"关于我们"},
        {"img_about":"images/20_l.jpg","about":"新闻资讯"},

]
})

还有iindexController.js文件夹:app.controller(‘indexController‘,function($scope){

$scope.about=‘关于我们‘
                $scope.img_about=‘images/15_l.jpg‘

$scope.news=‘新闻资讯‘
                $scope.img_news=‘images/20_l.jpg‘

$scope.writings=‘作品展示‘
                $scope.img_writings=‘images/23.jpg‘

$scope.download=‘资料下载‘
                $scope.img_download=‘images/30.jpg‘

$scope.employ=‘人才招聘‘
                $scope.img_employ=‘images/8.jpg‘

$scope.messages=‘在线留言‘
                $scope.img_messages=‘images/9.jpg‘

$scope.contact=‘联系我们‘
                $scope.img_contact=‘images/31.jpg‘

$scope.dial=‘一键拨号‘
                $scope.img_dial=‘images/dial.jpg‘
            })

下面还有一种是肯德基的实例:<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="css/bootstrap.css">
        <link rel="stylesheet" href="css/bootstrap-theme.css">
        <script src="js/jquery-1.9.1.js"></script>
        <script src="js/bootstrap.js"></script>
        <script src="js/angular.js"></script>
        <script src="js/angular-route.js"></script>
    </head>
    <body ng-app="myapp">
        <div ng-view></div>
        <div class="container">
            <div class="row navbar-fixed-bottom">
                <div class="col-xs-3">
                    <a href="#pic/0">
                        <img src="images/breakfast_a.png" class="img-responsive">
                    </a>
                </div>
                <div class="col-xs-3">
                    <a href="#pic/1">
                        <img src="images/lunch_a.png" class="img-responsive">
                    </a>
                </div>
                <div class="col-xs-3">
                    <a href="#pic/2">
                        <img src="images/dinner_a.png" class="img-responsive">
                    </a>
                </div>
                <div class="col-xs-3">
                    <a href="#pic/3">
                        <img src="images/24h_a.png" class="img-responsive">
                    </a>
                </div>
            </div>
        </div>
    </body>
    <script>
        var app=angular.module(‘myapp‘,[‘ngRoute‘]);
        app.config([‘$routeProvider‘,function($routeProvider){
                $routeProvider
                .when(‘/pic/:id‘,{templateUrl:‘view/home.html‘,controller:‘home‘})
                .otherwise({redirectTo:‘/pic/0‘})
            }])
    </script>
    <script src="controller/home.js"></script>
</html>

然后在view文件夹中建立一个home.html文件夹。

<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="css/bootstrap.css">
        <link rel="stylesheet" href="css/bootstrap-theme.css">
        <script src="js/jquery-1.9.1.js"></script>
        <script src="js/bootstrap.js"></script>
    </head>
    <body>
        <div class="container" style="background-image:url(images/bk.png)">
            <div class="row">
                <div class="col-xs-6" ng-repeat="img in imga">
                    <img src="{{img.pic}}">
                </div>
                
            </div>
        </div>
    </body>  
</html>

在项目中建立一个controller文件夹里面再建一个home.js内容是app.controller(‘home‘,function($scope,$http,$routeParams){
        $http({
            method:‘GET‘,
            url:‘model/data.json‘
        }).success(function(data,status,header,config){
                $scope.imga=data[parseInt($routeParams.id)]
        }).error(function(status){
                
        });
    });

然后再建一个model文件夹,建立一个data.json文件夹,里面写二维数组[
    [
        {"pic":"images/b_1.png"},
        {"pic":"images/b_1.png"},
        {"pic":"images/b_1.png"},
        {"pic":"images/b_1.png"},
        {"pic":"images/b_1.png"},
        {"pic":"images/b_1.png"}
    ],
    [
        {"pic":"images/l_1.png"},
        {"pic":"images/l_1.png"},
        {"pic":"images/l_1.png"},
        {"pic":"images/l_1.png"},
        {"pic":"images/l_1.png"},
        {"pic":"images/l_1.png"}
    ],
    [
        {"pic":"images/d_1.png"},
        {"pic":"images/d_1.png"},
        {"pic":"images/d_1.png"},
        {"pic":"images/d_1.png"},
        {"pic":"images/d_1.png"},
        {"pic":"images/d_1.png"}
    ],
    [
        {"pic":"images/h_1.png"},
        {"pic":"images/h_1.png"},
        {"pic":"images/h_1.png"},
        {"pic":"images/h_1.png"},
        {"pic":"images/h_1.png"},
        {"pic":"images/h_1.png"}
    ]
]

这样一个肯德基的MVC数据分离的效果就出来了。以上就是我对anjular的浅显的理解,谢谢。

时间: 2024-12-17 03:27:07

浅谈angularJs的相关文章

浅谈AngularJS中的$parse和$eval

AngularJS的初学者常常会对$parse和$eval两个内建服务感到有些困惑,今天我们就来说说AngularJS中的$parse和$eval. 总的来说,$parse和$eval都是作用于AngularJS的表达式. 什么是表达式?AngularJS中的表达式就是一些类似于JavaScript代码的代码片段(但是它们和JavaScript代码有不尽相同).表达式通常被用来防止在绑定中,例如{{expression}}.下面是一个例子: 1 + 2 = {{ 1 + 2 }}或者: My n

浅谈AngularJS启动引导过程

我们都知道AngularJS默认会执行app.js来启动整个angular项目,但你知道angular具体执行过程吗? 一.自动引导启动框架 例如我们有如下代码,我们想要完成一个指令功能: <html ng-app> <head> <script src="angular.min.js"></script> </head> <body> <div my-directive></div> &l

浅谈AngularJS中的指令和指令间的相互通信

说到AngularJS,我们首先想到的大概也就是双向数据绑定和指令系统了,这两者也是AngularJS中最为吸引人的地方.双向数据绑定呢,感觉没什么好说的,那么今天我们就来简单的讨论下AngularJS这个框架的指令系统. 指令作为AngularJS中最为重要的部分,所以这个框架本身也是自带了比较多的的指令,但是在开发中,这些指令通常不能满足我们的需要,所以我们也是需要自定义一些指令的.那么一个AngularJS指令在HTML代码中可以有四种表现形式: 1.作为一个新的HTML元素来使用. <h

浅谈angularJs中的$watch的用法

大家都是到angularJS中非常屌的一个性能,数据双向绑定,这就意味着view中的数据发生任何变化的时候,这个变化也会相应的反映到scope上,也就是说scope的模型会动态更新.所以有时候我们的需求可能是要监控摸个model的变化,下面就简单的说下这个操作以及实现原理 $watch $watch可以很方便且简单的监控一个model的变化,举个栗子: <html> <head>     <script src='./lib.angular.min.js'></s

浅谈AngularJs双向绑定

双向绑定的三个重要方法: $scope.$apply() $scope.$digest() $scope.$watch() 一.$scope.$watch() $watch作用就是在$scope上添加一个监听器,当监听的数据发生变化的时候,监听器就会收到提示,并执行某些操作.当给$watch指定如下两个函数,就可以创建一个监听器: 一个表达式,用于指定所关注的那部分数据,比如说“user.firstName”. 一个监听函数,用于在数据变更的时候接受提示. 为了实现$watch,我们需要存储监听

浅谈angularjs绑定富文本出现的小问题

富文本编辑器上传的文本和图片以及样式,一般都会以html代码的形式上传到服务器,当再次从服务器请求这些数据,回显到页面的时候,用jq绑定数据或者el表达式一般情况下都是没问题的,当使用angular前端架构绑定数据的时候,有时会出现把所有标签都带懂了前台页面. 解决方法很简单如果用的是ng-bind="any"或者是{{any}}的话,只需要把绑定方式替换成ng-bind-html="any",这样绑定的数据就会以html的形式解析在页面上,完美解决上述问题.

浅谈AngularJS中使用$resource

这个服务可以创建一个资源对象,我们可以用它非常方便地同支持RESTful的服务端数据源进行交互,当同支持RESTful的数据模型一起工作时,它就派上用场了. REST是Representational State Transfer(表征状态转移)的缩写,是服务器用来智能化地提供数据服务的一种方式 1)我们首先需要引入ng-Resource  模块,在angular之后 <script src="js/vendor/angular.js"></script> &l

AngularJS进阶(二十五)requirejs + angular + angular-route 浅谈HTML5单页面架构

requirejs + angular + angular-route 浅谈HTML5单页面架构 众所周知,现在移动Webapp越来越多,例如天猫.京东.国美这些都是很好的例子.而在Webapp中,又要数单页面架构体验最好,更像原生app.简单来说,单页面App不需要频繁切换网页,可以局部刷新,整个加载流畅度会好很多. 废话就不多说了,直接到正题吧,浅谈一下我自己理解的几种单页面架构: 1.requirejs+angular+angular-route(+zepto) 最后这个zepto可有可无

浅谈HTML5单页面架构(一)——requirejs + angular + angular-route

本文转载自:http://www.cnblogs.com/kenkofox/p/4643760.html 心血来潮,打算结合实际开发的经验,浅谈一下HTML5单页面App或网页的架构. 众所周知,现在移动Webapp越来越多,例如天猫.京东.国美这些都是很好的例子.而在Webapp中,又要数单页面架构体验最好,更像原生app.简单来说,单页面App不需要频繁切换网页,可以局部刷新,整个加载流畅度会好很多. 废话就不多说了,直接到正题吧,浅谈一下我自己理解的几种单页面架构: 1.requirejs