您的位置:首页 > Web前端 > AngularJS

AngularJS指令详解(2)—指令与控制器之间的交互

2016-09-17 21:34 666 查看
本节我们来看控制器与指令之间的交互

1.首先来看最简单的,在指令中调用父控制器的方法:

<div ng-controller="myController1">
</div>

app.controller('myController1',['$scope',function($scope){
$scope.load=function(){
console.log('正在加载数据......');
}
}]);
app.directive('myTest',function(){
return{
restrict:'E',
link:function(scope,ele,attr){
ele.bind('mouseenter',function(){
scope.load();
})
}
}
})


在第一节中,我们已经知道了如何在指令的scope参数中调用父控制器中的方法,这里的:

scope.load();


也可以写成:

scope.$apply('load()');


2.同一个指令,在动态调用多个父类控制器中的方法:

<div ng-controller="myController1" loadMore="load1()"</div>
<div ng-controller="myController2" loadMore="load2()"></div>

app.controller('myController1',['$scope',function($scope){
$scope.load1=function(){
console.log('正在加载数据......');
}
}]);
app.controller('myController2',['$scope',function($scope){
$scope.load2=function(){
console.log('正在加载数据........');
}
}]);
app.directive('myTest',function(){
return{
restrict:'E',
link:function(scope,ele,attr){
ele.bind('mouseenter',function(){
scope.$apply(attr.loadmore())
})
}
}
})


注意这里:

scope.$apply(attr.loadmore());


loadmore是小写,而在html中,属性是通过驼峰法则得到的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  angularjs 指令