可以在https://github.com/darylrowland/angucomplete/blob/master/angucomplete.js
查看代码摘录如下:
angular.module('angucomplete', [] )
.directive('angucomplete', function ($parse, $http, $sce, $timeout) {
return {
restrict: 'EA',
scope: {
"id": "@id",
"placeholder": "@placeholder",
"selectedObject": "=selectedobject",
"url": "@url",
"dataField": "@datafield",
"titleField": "@titlefield",
"descriptionField": "@descriptionfield",
"imageField": "@imagefield",
"imageUri": "@imageuri",
"inputClass": "@inputclass",
"userPause": "@pause",
"localData": "=localdata",
"searchFields": "@searchfields",
"minLengthUser": "@minlength",
"matchClass": "@matchclass"
},
我无法理解的是神奇的@
和=
字符串。它是AngularJS中的特殊字符吗?(我不确定因为搜索google中的标志很难...)如果是这样,它的用法是什么?
答案 0 :(得分:2)
在angularjs中创建指令时,这两个特殊字符经常被@
和=
使用。
@
在angularjs指令app.directive("directive1",function(){
return{
restrict:"E",
template:"<p></p>",
scope:{
text:"@text"
}
};
});
<directive1 text="Usage of @ in angularjs directive"></directive1>
此处对父范围文本的任何更改都将更改本地范围文本,但不会改变其他方式。
=
在angularjs指令app.directive("directive1",function(){
return{
restrict:"E",
template:"<p></p>",
scope:{
text:"=text"
}
};
});
<directive1 text="Usage of = in angularjs directive"></directive1>
此处对父范围文本的任何更改都将更改本地范围文本,以及相反的方式。
答案 1 :(得分:1)
Dan Wahlin撰写了一篇关于Angular Isolated范围系统的精彩文章,你可以在这里阅读:http://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-2-isolate-scope
答案 2 :(得分:1)
这些确实是AngularJS中的特殊字符。
官方文档很难找到它是在$compile
- 服务文档下定义的:
https://docs.angularjs.org/api/ng/service/ $编译#-scope -