Angular.js入门

作者: 叶落秋明 | 来源:发表于2017-04-02 08:37 被阅读0次

Angular.js是一款优秀的前端MVVM(Model View View Model)框架。诞生于2009年,后来被谷歌收购。

版本
目前最新的版本是Angular.js4.0,但本文中使用的为1.5.3,基本是通用版本。
主要是因为angularjs在2.0使用typescript的语法编写。typescript也可以说成是C#语言编写后再通过转编译成js代码的一个编译器。

初始化

  • ng-app
    在html标签中添加这个属性可以直接初始化angular.js,当然只是简单的应用。
<div ng-app>
    <p>{{ 2+3 }}</p>
</div>

在网页中显示:

5
花括号中数据会被angular识别,进行处理。

如果要进行进一步的操作,就必须要给它取个名字:ng-app="app"
然后,js中初始化

    var app=angular.module('app',[]);

[]中是这个app的注入依赖,当需要额外的功能时可以添加,但空数组必须存在。

作用域

在angular中有全局作用域,以及局部作用域;

  • 全局作用域通过run方法进行声明;
app.run(function($rootScope){
    $rootScope.box = '我是全局的属性'; //定义一个全局的作用域        
})

这种写法下传入的形参必须写死:$rootScope
另外一种写法:

app.run('$rootScope',function(root){
    root.box = '我是全局的属性'; //定义一个全局的作用域
})

这种方式下,形参就可以随意书写;

  • 局部作用域
    Angular中的局部作用域需要通过初始化一个控制器来实现;
    先在html中绑定控制器;
<div class="wrapper" ng-controller="wrapper">

然后在初始化控制器;

app.controller('wrapper', ['$scope',function(scope){
    scope.name = '67';
    scope.yui = 890;
    scope.color = 'red';
}])

也可以写成:

app.controller('wrapper',function($scope){
    scope.name = '67';
    scope.yui = 890;
    scope.color = 'red';
})

与函数作用域相同,如果这个局部作用域中找不到这个属性或者方法时,它就会先在父级作用域中查找,然后一级一级往上,在全局作用域中查找;

ng-model

表单中的变量通过ng-model来声明

<input type="text" ng-model="value">
<p>{{value}}</p>

这样改变表单值的同时,P标签的文本内容同时也改变了

ng-repeat

可以遍历我们的dom结构
首先,写个数组:

<script>
    $scope.list = [{
    name: 1,
    age: 18
},{
    name: 2,
    age: 18
},{
    name: 3,
    age: 18
},{
    name: 4,
    age: 18
}]
</script>

item就是这个数组的每一项;

<li ng-repeat="item in list">
    {{item.name}}---{{item.age}}
</li>

结果就是这样:

  • 1---18
  • 2---18
  • 3---18
  • 4---18

如果数组值都是一样的

<script>
   $scope.arr = [1,1,1,1,1,1,1,1]
</script>

就必须在后面加入track by $index

<li ng-repeat="item in arr track by $index">
    {{item}}
</li>

结果:

  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1
  • 1

ng-click

绑定点击事件执行的函数

<button ng-click="show()">显示</button >

ng-show

传入布尔值,是否显示元素。

<div ng-show="visible"  class="box" style="width: 200px;height: 200px;><div>

最后写个函数

<script>
        $scope.visibel=true;
        $scope.show=function(){
            $scope.visibel=!$scope.visibel;
        }
</script>

相关文章

  • Angular.js入门

    Angular.js是一款优秀的前端MVVM(Model View View Model)框架。诞生于2009年,...

  • angular.js入门2

    对于自学的人来说,好的习惯就是不断寻找自己需要学习的资料,达到让自己理解的习惯!今天偶然想起自己前不久面试的时候,...

  • 2019年最新angular视频教程-爱创课堂

    爱创课堂2019年Angular.JS前端开发从入门到上手企业开发视频教程(完整版)内容简介: AngularJS...

  • 1 、Introduction of AngularJS

    各个 angular.js 版本下载:https://github.com/angular/angular.js/...

  • AngularJS学习笔记

    引入angular.js 若在页面中引入了angular.js并添加了ng-app="app" ng-contro...

  • 002数据绑定

    1 ng-app命令,加在标签上,如 表示这个标签会被angular.js管理 2 {{}}angular.js用...

  • 004ng-bind

    前面我们说angular.js使用{{}}可以用来输出,括号里面可以放angular.js的表达式如{{name}...

  • 前端mvvm框架vue.js(1)——初步学习

    vue.js由Evan you大神开源的个人项目,借鉴于angular.js,但比angular.js更加简洁,易...

  • Angular与isotopejs与imagesLoaded 无

    [TOC] Angular.js Angular.js是一款优秀的前端框架,在web与wap中可以通过简单的代码实...

  • ng-app

    ng-app 确认angular.js的管理边界angular.js比较霸道,一旦确认了ng-app,ng-app...

网友评论

    本文标题:Angular.js入门

    本文链接:https://www.haomeiwen.com/subject/rmmiottx.html