angularJS 学习

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>




<div ng-app="myApp" ng-controller="myCtrl" ng-init="quantity=1;cost=5;person={first:'John',last:'Doe'};names=['Jani','Hege','Kai']">
<ul>
<li ng-repeat="x in names">
{{x}}
</li>
</ul>


<p>姓名:{{person.first}}</p>
<p>总价:<span ng-bind="quantity*cost"></span></p>
姓:<input type="text" ng-model="firstName"><br>
名:<input type="text" ng-model="lastName"><br>
<br>
姓名:{{firstName+""+lastName}}
</div>


<script>
var app = angular.module('myApp',[]);
app.controller('myCtrl',function($scope)
{
    $scope.firstName="John";
    $scope.lastName="Doe";
});
</script>
</body>
</html>

 

 

 

 

 

AngularJS Scope(作用域)
Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带。
Scope 是一个对象,有可用的方法和属性。
Scope 可应用在视图和控制器上。
如何使用 Scope
当你在 AngularJS 创建控制器时,你可以将 $scope 对象当作一个参数传递:

 

 

AngularJS 实例

 

控制器中的属性对应了视图上的属性:

<div ng-app="myApp" ng-controller="myCtrl">

<h1>{{carname}}</h1>

</div>

<script>

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

app.controller('myCtrl'function($scope) {
    $scope.carname = "Volvo";
});

</script>

 

 

 

Scope 概述

 

AngularJS 应用组成如下:

  • View(视图), 即 HTML。
  • Model(模型), 当前视图中可用的数据。
  • Controller(控制器), 即 JavaScript 函数,可以添加或修改属性。

scope 是模型。

scope 是一个 JavaScript 对象,带有属性和方法,这些属性和方法可以在视图和控制器中使用。

如果你修改了视图,模型和控制器也会相应更新:

<divng-app="myApp"ng-controller="myCtrl"><inputng-model="name"><h1>{{greeting}}</h1><buttonng-click='sayHello()'>点我</button></div><script>

varapp =angular.module('myApp',[]);app.controller('myCtrl',function($scope){ $scope.name = "Runoob"; $scope.sayHello = function(){ $scope.greeting = 'Hello' + $scope.name + '!';};});

</script>

Scope 作用范围

了解你当前使用的 scope 是非常重要的。

在以上两个实例中,只有一个作用域 scope,所以处理起来比较简单,但在大型项目中, HTML DOM 中有多个作用域,这时你就需要知道你使用的 scope 对应的作用域是哪一个。

 

<div ng-app="myApp" ng-controller="myCtrl">

<ul>
    <li ng-repeat="x in names">{{x}}</li>
</ul>

</div>

<script>

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

app.controller('myCtrl'function($scope) {
    $scope.names = ["Emil""Tobias""Linus"];
});

</script>

 

根作用域

所有的应用都有一个 $rootScope,它可以作用在 ng-app 指令包含的所有 HTML 元素中。

$rootScope 可作用于整个应用中。是各个 controller 中 scope 的桥梁。用 rootscope 定义的值,可以在各个 controller 中使用。

AngularJS 实例

创建控制器时,将 $rootScope 作为参数传递,可在应用中使用:

<div ng-app="myApp" ng-controller="myCtrl">

<h1>{{lastname}} 家族成员:</h1>

<ul>
    <li ng-repeat="x in names">{{x}} {{lastname}}</li>
</ul>

</div>

<script>

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

app.controller('myCtrl'function($scope, $rootScope) {
    $scope.names = ["Emil""Tobias""Linus"];
    $rootScope.lastname = "Refsnes";
});

</script>

 

 

 

 

1、uppercase,lowercase 大小写转换

{{ "lower cap string" | uppercase }}   // 结果:LOWER CAP STRING
{{ "TANK is GOOD" | lowercase }}      // 结果:tank is good "lower cap string" | uppercase }}   // 结果:LOWER CAP STRING
{{ "TANK is GOOD" | lowercase }}      // 结果:tank is good

2、date 格式化

{{1490161945000 | date:"yyyy-MM-dd HH:mm:ss"}} // 2017-03-22 13:52:251490161945000 | date:"yyyy-MM-dd HH:mm:ss"}} // 2017-03-22 13:52:25

3、number 格式化(保留小数)

{{149016.1945000 | number:2}}149016.1945000 | number:2}}

4、currency货币格式化

{{ 250 | currency }}            // 结果:$250.00
{{ 250 | currency:"RMB ¥ " }}  // 结果:RMB ¥ 250.00 250 | currency }}            // 结果:$250.00
{{ 250 | currency:"RMB ¥ " }}  // 结果:RMB ¥ 250.00

5、filter查找

输入过滤器可以通过一个管道字符(|)和一个过滤器添加到指令中,该过滤器后跟一个冒号和一个模型名称。

filter 过滤器从数组中选择一个子集

 // 查找name为iphone的行
{{ [{"age": 20,"id": 10,"name": "iphone"},
{"age": 12,"id": 11,"name": "sunm xing"},
{"age": 44,"id": 12,"name": "test abc"}
] | filter:{'name':'iphone'} }}        // 查找name为iphone的行
{{ [{"age": 20,"id": 10,"name": "iphone"},
{"age": 12,"id": 11,"name": "sunm xing"},
{"age": 44,"id": 12,"name": "test abc"}
] | filter:{'name':'iphone'} }}        

6、limitTo 截取

{{"1234567890" | limitTo :6}} // 从前面开始截取6位
{{"1234567890" | limitTo:-4}} // 从后面开始截取4位"1234567890" | limitTo :6}} // 从前面开始截取6位
{{"1234567890" | limitTo:-4}} // 从后面开始截取4位

7、orderBy 排序

 // 根id降序排
{{ [{"age": 20,"id": 10,"name": "iphone"},
{"age": 12,"id": 11,"name": "sunm xing"},
{"age": 44,"id": 12,"name": "test abc"}
] | orderBy:'id':true }}

// 根据id升序排
{{ [{"age": 20,"id": 10,"name": "iphone"},
{"age": 12,"id": 11,"name": "sunm xing"},
{"age": 44,"id": 12,"name": "test abc"}
] | orderBy:'id' }}// 根id降序排
{{ [{"age": 20,"id": 10,"name": "iphone"},
{"age": 12,"id": 11,"name": "sunm xing"},
{"age": 44,"id": 12,"name": "test abc"}
] | orderBy:'id':true }}

// 根据id升序排
{{ [{"age": 20,"id": 10,"name": "iphone"},
{"age": 12,"id": 11,"name": "sunm xing"},
{"age": 44,"id": 12,"name": "test abc"}
] | orderBy:'id' }}

AngularJS XMLHttpRequest

 

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>
<div ng-app="myAPP" ng-controller="sitectrl">
<ul>
    <li ng-repeat="x in names">
        {{x.Name +','+x.Country}}
    </li>
</ul>
</div>
<script >
var app=angular.module('myAPP',[]);
app.controller('sitectrl',function($scope,$http){
    $http({
        method:'GET',
        url:'http://www.runoob.com/try/angularjs/data/sites.php'}).then(function successCallback(response){
            $scope.names=response.data.sites;
        },function errorCalback(){
          //请求失败执行代码

        });
});
</script>

</body>
</html>

AngularJS Select(选择框)

AngularJS 可以使用数组或对象创建一个下拉列表选项。


使用 ng-options 创建选择框

在 AngularJS 中我们可以使用 ng-option 指令来创建一个下拉列表,列表项通过对象和数组循环输出

 

使用对象作为数据源, x 为键(key), y 为值(value):

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.bootcss.com/angular.js/1.6.3/angular.min.js"></script>
</head>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
<p>选择一辆车:</p>
<select ng-model="selectedCar" ng-options="x for (x,y) in cars"></select>
<p>你选择的是:{{selectedCar.brand}}</p>
<p>型号为:{{selectedCar.model}}</p>
<p>颜色为:{{selectedCar.color}}</p>
<p>下拉列表中的选项也可以是对象的属性。</p>
</div>

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

app.controller('myCtrl', function($scope) {
$scope.cars={
     car01:{brand:"Ford",model:"Mustang",color:"red"},
     car02:{brand:"Fiat",model:"500",color:"white"},
     scar03:{brand:"Volvo",model:"XC90",color:"black"}
}
});
</script>

</body>
</html>

欢迎访问我的网站

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值