< html lang ="en" ng-app ="Demo" >
< head >
< meta charset ="utf-8" >
< title > Directive Html </ title >
< script src ="angular.min.js" ></ script >
< script type ="text/javascript" >
var app = angular.module( ' Demo ' , [], angular.noop);
app.directive( ' ysBlock ' , function (){
return {
compile: angular.noop,
template: ' <div style="width: 200px; border: 1px solid black;"> ' +
' <h1 style="background-color: gray; color: white; font-size: 22px;">{{ title }}</h1> ' +
' <div>{{ text }}</div> ' +
' </div> ' ,
replace: false ,
scope: {
title: ' @titlearr ' , // directive里面的title取值为element属性titlearr的动态的值{{title}}
text: ' =textarr ' // directive里面text的取值为element属性textarr的值text在element中scope中的值,scope.text
}, // 这里的=title其实用的是
restrict: ' E '
};
});
app.controller( ' TestCtrl ' , function ($scope){
$scope.title = ' 标题在这里 ' ;
$scope.text = ' 内容在这里 ' ;
});
angular.bootstrap(document, [ ' Demo ' ]);
</ script >
</ head >
< body >
< div ng-controller ="TestCtrl" >
< ys-block titlearr ="{{title}}" textarr ="text" ></ ys-block >
< p > 标题: < input ng-model ="title" /></ p >
< p > 内容: < input ng-model ="text" /></ p >
< span > {{title}},{{text}} </ span >
</ div >
</ body >
</ html >
< html lang ="en" ng-app ="Demo" >
< head >
< meta charset ="utf-8" >
< title > Directive Html </ title >
< script src ="angular.min.js" ></ script >
< script type ="text/javascript" >
// &attr 是包装一个函数出来,这个函数以节点所在的 scope 为上下文这里是一个上下文交错的环境,通过 & 这种机制,让指令的 scope 与节点的 scope 发生了互动
var app = angular.module( ' Demo ' , [], angular.noop);
app.directive( ' a ' , function (){
var func = function (element, attrs, link){
return function llink(scope){
console.log(scope);
scope.a(); // 执行了here = here + 1 所以虽然TestCtrl设置here为123,页面上最终的here为124
scope.b(); // 执行了TestCtrl的show()
scope.show = function (here){ // ----点击是执行link里面的show(here)与TestCtrl无关
console.log( ' Inner, ' + here);
scope.a({here: 5 }); // ---- 但是此处的scope.a({here: 5}),因为a执行的是TestCtrl的上下文,于是a传递的一个对象,里面的所有属性
// TestCtrl就全收下了,接着执行here = here+1,所以会显示6
}
}
}
return {
compile: func,
scope: {
a: ' &abc ' , // scope.a是&abc 即:scope.a = function() {here = here +1;} here是TestCtrl的
b: ' &ngClick ' // scope.b是&ngClick 即:scope = function() {show(here);} 这里的show()和here都是TestCtrl的
},
restrict: ' A '
};
});
app.controller( ' TestCtrl ' , function ($scope){
$scope.here = 123 ;
console.log($scope);
$scope.show = function (here){
console.log(here);
}
});
angular.bootstrap(document, [ ' Demo ' ]);
</ script >
</ head >
< body >
< div ng-controller ="TestCtrl" >
< div a abc ="here = here + 1" ng-click ="show(here)" > 这里 </ div >
< div > {{ here }} </ div >
</ div >
</ body >
</ html >
查看更多关于angular directive =,&的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did222915