AngularJs和Javascript嵌套函数及其调用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了AngularJs和Javascript嵌套函数及其调用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2444字,纯文字阅读大概需要4分钟。
内容图文
考虑以下代码
<body ng-app="myApp">
<h1>Hello {{name}}</h1>
<h2>reverse of your name is {{ name | reverse }}</h2>
<input type="text" ng-model="name">
<script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.2.3/angular.js'></script>
<script>
angular.module('myApp', [])
.filter('reverse', function(){
return function(str){
return str.split('').reverse().join('');
}
});
</script>
</body>
这里感兴趣的是反向滤波器.我认为这是在做的事情:
>使用两个参数调用angular.filter(). arg1:字符串& arg2:函数(准确地说是匿名或无名函数)
> arg2函数不接受参数,而是在其中嵌套了另一个匿名函数.
>此嵌套的匿名函数确实采用单个参数-将应用此过滤器的文本或字符串.
>此嵌套的匿名函数将字符串取反.
Q1.我的理解正确吗?
Q2.之间有什么区别:
普通版:
angular.filter('reverse', function(str){
return str.split('').reverse().join('');
});
嵌套版本:
angular.filter('reverse', function(str){
return function(str){
return str.split('').reverse().join('');
}
});
Q3.为什么额外的功能嵌套层次有用?在什么情况下我会直接返回值.还是返回一个函数,然后返回实际结果?
Q4.这如何影响范围?闭包在这里有什么作用?
JSFiddle:http://jsfiddle.net/C7EDv/
解决方法:
(Q1.1)右-两个args,一个字符串,其名称为filter和…
(Q2 / 3)要过滤的第二个参数(arg2)是构造函数(或“ factory”).创建过滤器后仅执行一次.
构造函数必须返回一个函数.该返回的函数将在使用与其关联的过滤器时执行.换句话说,返回的函数是(使用$injector)注入到过滤器(http://docs.angularjs.org/api/ng. $filterProvider)中的函数
我在下面添加了评论,详细说明了这一点:
angular.filter('reverse', function(service){
// This is run only once- upon creation
return function(str){
// This is run every time the filter is called
return str.split('').reverse().join('');
}
});
(Q3)您将始终使用此表单(“嵌套表单”),否则会出现错误(对象…没有方法“应用”),因为Angular需要返回一个可以调用的函数(使用每当使用过滤器时,都会套用apply().这与Angular中的所有提供程序(包括服务)完全一样.
(Q2)如果可以执行您所说的“普通版本”,那么过滤器在创建后将只运行一次.不管它得到什么返回值,都将用于过滤器的每次调用.因为有一个总是返回相同值的过滤器通常不会有用,所以Angular会改用此javascript构造函数模式(您将在JS中的其他位置使用该模式),以便每次使用该过滤器都会导致关联的新调用功能.
(Q1.4)是的,返回的函数确实反转了字符串.这是关于此过滤器的一段不错的2分钟视频:http://www.thinkster.io/pick/EnA7rkqH82/angularjs-filters
(Q1.2 / 3)您的过滤器应该使用您在上面我使用服务的位置传递的任何服务(上面的链接提供了该示例).如您所述,参数str是过滤器的输入.
(第4季度)“运行一次”区域确实创建了一个闭包-因此您可以像使用其他任何闭包一样使用它.
内容总结
以上是互联网集市为您收集整理的AngularJs和Javascript嵌套函数及其调用全部内容,希望文章能够帮你解决AngularJs和Javascript嵌套函数及其调用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。