AngularJS(二)
来源:互联网 发布:oracle数据库中文版 编辑:程序博客网 时间:2024/06/14 06:17
解决“Error: [$controller:ctrlreg]”报错问题
当前使用的nagular版本是1.6.0
<pre> <!DOCTYPE html> <html lang="en" ng-app> <head> <meta charset="UTF-8"> <title>Title</title> <script src="js/angular.min.js"></script> <script type="text/javascript"> /* var app=angular.module("app",[]); app.controller("Aaa",Aaa);*/ function Aaa($scope){ $scope.iphone={ money:50, num:1 }; } </script> </head> <body> <div ng-controller="Aaa"> <p>价格:<input type="text" ng-model="iphone.money"> </p> <p>个数:<input type="text" ng-model="iphone.num"> </p> <p>费用:<span>{{iphone.money * iphone.num | currency:"¥"}}</span></p> </div> </body> </html></pre>
运行结果和报错如下:
原因是:由于没有在页面中使用模块引入controller导致的,修改内容如下:
添加:ng-app=’app’,然后在js中添加如下代码:
<pre> var app=angular.module("app",[]); app.controller("Aaa",Aaa); </pre>
filter过滤器
可以帮我们完成一些常见的运算操作和辅助功能。
1. currency:货币格式化的方法。
<pre> <!DOCTYPE html> <html lang="en" ng-app="app"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="js/angular.min.js"></script> <script type="text/javascript"> var app=angular.module("app",[]); app.controller("Aaa",Aaa); function Aaa($scope){ $scope.iphone={ money:50, num:1 }; } </script> </head> <body> <div ng-controller="Aaa"> <p>价格:<input type="text" ng-model="iphone.money"> </p> <p>个数:<input type="text" ng-model="iphone.num"> </p> <!-- 表达式后面加竖杠“|”,后面接过滤器currency,currency默认是美元--> <p>费用:<span>{{iphone.money * iphone.num | currency}}</span></p> <!--currency后面加一个参数,为“¥”,可以将货币单位改成“¥”--> <p>费用:<span>{{iphone.money * iphone.num | currency:"¥"}}</span></p> </div> </body> </html></pre>
运行结果如下:
$watch
- 1.监听数据变化;
2.接收三个参数:
scope. watch(a,b,c);- a第一个参数:需要被监听的变量
- b第二个参数:回调函数,必填;
c第三个参数选填。
代码如下:<pre> <!DOCTYPE html> <html lang="en" ng-app="app"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="js/angular.min.js"></script> <script type="text/javascript"> var app=angular.module("app",[]); app.controller("Aaa",Aaa); function Aaa($scope){ $scope.iphone={ money:50, num:1, fre:10 }; $scope.sum=function(){ return $scope.iphone.money * $scope.iphone.num; }; $scope.$watch("iphone.money",function(){ //当iphone.money的值每次发生变化时,控制台都会打印123 console.log(123); }); } </script> </head> <body> <div ng-controller="Aaa"> <p>价格:<input type="text" ng-model="iphone.money"> </p> <p>个数:<input type="text" ng-model="iphone.num"> </p> <p>运费:<span>{{iphone.fre | currency:"¥"}}</span> </p> <!-- 表达式后面加竖杠“|”,后面接过滤器currency,currency默认是美元--> <!-- 表达式还可简化--> <p>费用:<span>{{sum() | currency}}</span></p> <!--currency后面加一个参数,为“¥”,可以将货币单位改成“¥”--> <p>费用:<span>{{sum()+iphone.fre | currency:"¥"}}</span></p> </div> </body> </html></pre>
注意:只有两个参数时,只能监听单个值的变化。如果将上述代码改成:
$scope.$watch("iphone",function(){ //当iphone中的任何值发生变化,都不会打印 console.log(123); });
所以只有两个参数时,无法监听多个值的数据变化。如果想完成上述的需求,需要设置第三个参数。
- 3.第三个参数:可选,是否深入监听,boolean值。
针对需要监听集合
将上述代码改成下面的方式,就能完成多值的监听:
$scope.$watch("iphone",function(){ //当iphone中的任何值发生变化,都会打印,如改变iphone.money或iphone.num都能打印,即都能被监听到。 console.log(123); },true);
- 4.第二个参数->回调函数接收两个参数(newVal,oldVal),第一个形参是被监听变量的新值,第二个形参是被监听变量的新值的旧值。
$scope.$watch("iphone.money",function(newVal,oldVal){ console.log(newVal,oldVal); });
- 5.除了可以监听字符串形式的变量,还能监听函数。
$scope.$watch($scope.sum,function(newVal,oldVal){ //打印出sum函数的返回值的新值和旧值 console.log(newVal,oldVal); //消费满100就免运费 $scope.iphone.fre=newVal>100?0:10; });
阅读全文
0 0
- AngularJS(二)
- AngularJS(二)
- AngularJS入门(二)
- angularJS学习笔记二
- AngularJS学习(二) 引导
- AngularJS 教程(二)
- AngularJS学习(二)
- AngularJS学习(二)
- AngularJs教程(二)
- AngularJs自定义服务(二)
- AngularJS学习二
- AngularJS入门(二)
- 【angularJs】--入门实例二
- Angularjs理解二
- AngularJS实例教程(二)
- AngularJS学习笔记二
- Angularjs留存(二)
- AngularJS基础二
- Servlet中的过滤器Filter
- OPENCV imencode与imdecode用法
- 错误 __gxx_personality_v0 的解决方法
- win10+Tensorflow+GPU详细的安装过程
- TokuDB • 引擎特性 • HybridDB for MySQL高压缩引擎TokuDB 揭秘
- AngularJS(二)
- pulltorefresh的使用
- C 语言 变量
- 广告位一直滚动特效
- 基于命令行的系统检测
- 通达OA使用手册(一)
- Java设计模式百例
- 欢迎使用CSDN-markdown编辑器
- 使用htk搭建语音拨号系统