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、控制器、过滤器相关推荐

  1. Angularjs (二)

    1.AngularJS中,子作用域一般都会通过JavaScript原型继承机制继承其父作用域的属性和方法.但有一个例外:在directive中使用scope: { ... },这种方式创建的作用域是一 ...

  2. angularjs html压缩,Angularjs 依赖压缩及自定义过滤器写法

    具体代码如下所示: {{name | rHello}} {{name | rHello:3:5}} // 三个参数分别是'input .n1.n2' {{name | rJs}} var app=an ...

  3. AngularJS 深入理解 $scope 转载▼

    AngularJS 深入理解 $scope 转载▼ (2015-04-07 14:09:50) $scope 的使用贯穿整个 AngularJS App 应用,它与数据模型相关联,同时也是表达式执行的 ...

  4. 从零学前端第十四讲:AngularJs进阶-作用域和控制器

    修真院Web工程师零基础全能课 本节课内容 AngularJs进阶-作用域和控制器 主讲人介绍 沁修,葡萄藤技术总监 项目经验丰富,擅长H5移动项目开发. 专注技术选型.底层开发.最佳代码实践规范总结 ...

  5. AngularJS: 自定义指令与控制器数据交互

    <!doctype html> <html><head><meta charset="utf-8"><title>Ang ...

  6. angularJS 组件及内置过滤器

    组件化<component> 组件化是将页面中一部分UI封装起来进行重复使用,UI中的数据可以是不同的,甚至组件中可以对UI进行适当的业务逻辑处理,如链接跳转.数据运算等等 组件语法结构如 ...

  7. 理解AngularJS的作用域Scope

    为什么80%的码农都做不了架构师?>>>    理解AngularJS的作用域Scope https://github.com/angu- 08-02 22:45 10-14 09: ...

  8. angularjs 中的scope继承关系——(2)

    转自:http://www.lovelucy.info/understanding-scopes-in-angularjs.html angularjs 中的scope继承关系 ng-include ...

  9. Revit二次开发_1.过滤器笔记篇

    Revit二次开发_1.过滤器笔记篇 前言 对象分类 过滤方法 前言 最近在用过滤器功能,先按照教程做了筛选墙,再自己做了筛选常规模型的功能,发现有点不一样,问题在于筛选这些Elements的时候没弄 ...

  10. Linux中断子系统(二)中断控制器GIC驱动分析

    Linux中断子系统(二)中断控制器GIC驱动分析 备注:   1. Kernel版本:5.4   2. 使用工具:Source Insight 4.0   3. 参考博客: Linux中断子系统(一 ...

最新文章

  1. 拜读了《婆媳关系好坏取决于老公》一文,看似有道理,细读感觉其实应该不是那么回事...
  2. 系统试运行报告是谁写的_最新标准:水污染源在线监测系统(CODCr、NH3N 等)安装技术规范(1)...
  3. 开源!100 页机器学习教程全面开放,附完整代码
  4. C++中 引用与取地址的区别
  5. ie6常见css bug
  6. 实时检测input的长度_目标检测——TinyYOLOv3
  7. 测试用例设计方法-正交试验常用正交表
  8. 教师职称考计算机模块,2015教师职称计算机考试模块.doc
  9. win10自带的打印机服务器,win10系统打印服务器安装设置的详细方法
  10. Docker安装JanusGraph
  11. windows系统误删引导分区后如何重装系统
  12. 深入浅出mysql_深入浅出MySQL读书笔记(一)
  13. 安装PyTorch详细过程
  14. 个人所得税计算java版
  15. 忆过去 想未来 人有情
  16. 那天是一年的第几天?
  17. PHP的_FILE_用法
  18. 工控机与商用计算机的区别,两招教你分辨工控机与普通电脑的区别
  19. 如何聪明地拒绝领导给自己安排的不想做的工作?
  20. 法规标准-ISO 15622标准解读(2018版)

热门文章

  1. 60套漂亮的的免费 PSD 界面设计元素包资源(系列二)
  2. extern作用详解
  3. .net中前台javascript与c#后台代码调用
  4. 终结者:使用slf4j+log4j完美构建日志
  5. 经典排序算法(二)--桶排序Bucket Sort
  6. MySQL 运维及开发规范
  7. 38. 数字在排序数组中出现的次数(C++版本)
  8. 01. 慎重选择容器类型
  9. ahb总线协议主机_AMBA总线协议之一文看懂AMBA2 AHB2与AMBA3 AHBLite总线协议的区别
  10. 大数据Hadoop学习记录(3)----基于JAVA语言的HDFS文件过滤与合并