angularJS(二):作用域$scope、控制器、过滤器
app.controller创建控制器
一、作用域
- Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带。
- Scope 是一个对象,有可用的方法和属性。
- Scope 可应用在视图和控制器上
当在控制器中添加 $scope 对象时,视图 (HTML) 可以获取了这些属性。
视图中,你不需要添加 $scope 前缀, 只需要添加属性名即可,如: {{carname}}。
<div ng-app="myApp" ng-controller="myCtrl"><input ng-model="name"><h1>{{greeting}}</h1><button ng-click='sayHello()'>点我</button> </div><script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) {$scope.name = "Runoob";$scope.sayHello = function() {$scope.greeting = 'Hello ' + $scope.name + '!';}; }); </script>
View Code
根作用域
所有的应用都有一个 $rootScope,它可以作用在 ng-app 指令包含的所有 HTML 元素中。
$rootScope 可作用于整个应用中。是各个 controller 中 scope 的桥梁。用 rootscope 定义的值,可以在各个 controller 中使用。
<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>
View Code
二、控制器
控制 AngularJS 应用程序的数据。
ng-controller 指令定义了应用程序控制器。
<div ng-app="myApp" ng-controller="myCtrl">名: <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>
View Code
应用解析:
AngularJS 应用程序由 ng-app 定义。应用程序在 <div> 内运行。
ng-controller="myCtrl" 属性是一个 AngularJS 指令。用于定义一个控制器。
myCtrl 函数是一个 JavaScript 函数。
AngularJS 使用$scope 对象来调用控制器。
在 AngularJS 中, $scope 是一个应用对象(属于应用变量和函数)。
控制器的 $scope (相当于作用域、控制范围)用来保存AngularJS Model(模型)的对象。
控制器在作用域中创建了两个属性 (firstName 和 lastName)。
ng-model 指令绑定输入域到控制器的属性(firstName 和 lastName)。
<div ng-app="myApp" ng-controller="personCtrl">名: <input type="text" ng-model="firstName"><br> 姓: <input type="text" ng-model="lastName"><br> <br> 姓名: {{fullName()}}</div><script> var app = angular.module('myApp', []); app.controller('personCtrl', function($scope) {$scope.firstName = "John";$scope.lastName = "Doe";$scope.fullName = function() {return $scope.firstName + " " + $scope.lastName;} }); </script>
View Code
三、过滤器
过滤器可以使用一个管道字符(|)添加到表达式和指令中
currency |
格式化数字为货币格式。 {{250| currency }}// 结果:$250.00{{250| currency:"RMB ¥ "}}// 结果:RMB ¥ 250.00 <div ng-app="myApp" ng-controller="costCtrl"><input type="number" ng-model="quantity"> <input type="number" ng-model="price"><p>总价 = {{ (quantity * price) | currency }}</p></div> View Code |
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'}}} <div ng-app="myApp" ng-controller="namesCtrl"><p><input type="text" ng-model="test"></p><ul><li ng-repeat="x in names | filter:test | orderBy:'country'">{{ (x.name | uppercase) + ', ' + x.country }}</li> </ul></div> View Code |
lowercase |
格式化字符串为小写。
<div ng-app="myApp" ng-controller="personCtrl"><p>姓名为 {{ lastName | lowercase }}</p></div> View Code |
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'}} <div ng-app="myApp" ng-controller="namesCtrl"><ul><li ng-repeat="x in names | orderBy:'country'">{{ x.name + ', ' + x.country }}</li> </ul></div> View Code |
uppercase |
格式化字符串为大写。
<div ng-app="myApp" ng-controller="personCtrl"><p>姓名为 {{ lastName | uppercase }}</p></div> View Code |
date |
日期格式化, {{1490161945000| date:"yyyy-MM-dd HH:mm:ss"}}// 2017-03-22 13:52:25 |
number |
格式化(保留小数){{149016.1945000| number:2}} |
limitTo |
截取{{"1234567890"| limitTo :6}}// 从前面开始截取6位 {{"1234567890"| limitTo:-4}}// 从后面开始截取4位 |
自定义过滤器
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) {$scope.msg = "Runoob"; }); app.filter('reverse', function() { //可以注入依赖return function(text) {return text.split("").reverse().join("");} });
View Code
<div ng-app="myApp" ng-controller="myCtrl">
名: <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>
转载于:https://www.cnblogs.com/web520/p/7229532.html
angularJS(二):作用域$scope、控制器、过滤器相关推荐
- Angularjs (二)
1.AngularJS中,子作用域一般都会通过JavaScript原型继承机制继承其父作用域的属性和方法.但有一个例外:在directive中使用scope: { ... },这种方式创建的作用域是一 ...
- angularjs html压缩,Angularjs 依赖压缩及自定义过滤器写法
具体代码如下所示: {{name | rHello}} {{name | rHello:3:5}} // 三个参数分别是'input .n1.n2' {{name | rJs}} var app=an ...
- AngularJS 深入理解 $scope 转载▼
AngularJS 深入理解 $scope 转载▼ (2015-04-07 14:09:50) $scope 的使用贯穿整个 AngularJS App 应用,它与数据模型相关联,同时也是表达式执行的 ...
- 从零学前端第十四讲:AngularJs进阶-作用域和控制器
修真院Web工程师零基础全能课 本节课内容 AngularJs进阶-作用域和控制器 主讲人介绍 沁修,葡萄藤技术总监 项目经验丰富,擅长H5移动项目开发. 专注技术选型.底层开发.最佳代码实践规范总结 ...
- AngularJS: 自定义指令与控制器数据交互
<!doctype html> <html><head><meta charset="utf-8"><title>Ang ...
- angularJS 组件及内置过滤器
组件化<component> 组件化是将页面中一部分UI封装起来进行重复使用,UI中的数据可以是不同的,甚至组件中可以对UI进行适当的业务逻辑处理,如链接跳转.数据运算等等 组件语法结构如 ...
- 理解AngularJS的作用域Scope
为什么80%的码农都做不了架构师?>>> 理解AngularJS的作用域Scope https://github.com/angu- 08-02 22:45 10-14 09: ...
- angularjs 中的scope继承关系——(2)
转自:http://www.lovelucy.info/understanding-scopes-in-angularjs.html angularjs 中的scope继承关系 ng-include ...
- Revit二次开发_1.过滤器笔记篇
Revit二次开发_1.过滤器笔记篇 前言 对象分类 过滤方法 前言 最近在用过滤器功能,先按照教程做了筛选墙,再自己做了筛选常规模型的功能,发现有点不一样,问题在于筛选这些Elements的时候没弄 ...
- Linux中断子系统(二)中断控制器GIC驱动分析
Linux中断子系统(二)中断控制器GIC驱动分析 备注: 1. Kernel版本:5.4 2. 使用工具:Source Insight 4.0 3. 参考博客: Linux中断子系统(一 ...
最新文章
- 拜读了《婆媳关系好坏取决于老公》一文,看似有道理,细读感觉其实应该不是那么回事...
- 系统试运行报告是谁写的_最新标准:水污染源在线监测系统(CODCr、NH3N 等)安装技术规范(1)...
- 开源!100 页机器学习教程全面开放,附完整代码
- C++中 引用与取地址的区别
- ie6常见css bug
- 实时检测input的长度_目标检测——TinyYOLOv3
- 测试用例设计方法-正交试验常用正交表
- 教师职称考计算机模块,2015教师职称计算机考试模块.doc
- win10自带的打印机服务器,win10系统打印服务器安装设置的详细方法
- Docker安装JanusGraph
- windows系统误删引导分区后如何重装系统
- 深入浅出mysql_深入浅出MySQL读书笔记(一)
- 安装PyTorch详细过程
- 个人所得税计算java版
- 忆过去 想未来 人有情
- 那天是一年的第几天?
- PHP的_FILE_用法
- 工控机与商用计算机的区别,两招教你分辨工控机与普通电脑的区别
- 如何聪明地拒绝领导给自己安排的不想做的工作?
- 法规标准-ISO 15622标准解读(2018版)
热门文章
- 60套漂亮的的免费 PSD 界面设计元素包资源(系列二)
- extern作用详解
- .net中前台javascript与c#后台代码调用
- 终结者:使用slf4j+log4j完美构建日志
- 经典排序算法(二)--桶排序Bucket Sort
- MySQL 运维及开发规范
- 38. 数字在排序数组中出现的次数(C++版本)
- 01. 慎重选择容器类型
- ahb总线协议主机_AMBA总线协议之一文看懂AMBA2 AHB2与AMBA3 AHBLite总线协议的区别
- 大数据Hadoop学习记录(3)----基于JAVA语言的HDFS文件过滤与合并