请教一个angularjs中在指令调用controller方法的问题

 我来答
百度网友e2d7ae3
推荐于2016-05-26 · TA获得超过2207个赞
知道大有可为答主
回答量:1287
采纳率:0%
帮助的人:1612万
展开全部
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script src="angular.min.js"></script>
<script>
var myApp = angular.module("myApp", []);
    myApp.directive('testIt',function(){
return {
restrict: 'A',
scope: false,
link:function(scope, elm, attr){
if(scope.$last){
elm.css('color','red');
scope.myFunction();
}
}
}
    });
    myApp.controller("testCtrl", function($scope){
        $scope.items = [0,1,2,3,4];
        $scope.myFunction = function(){
console.log('Hello!');
};
    });
</script>
</head>
 
<body>
<div ng-app="myApp">
  <div ng-controller="testCtrl">
    <ul>
      <li ng-repeat="item in items" test-it >{{item}}</li>
    </ul>   
  </div>
</div>
</body>
</html>

 主要在于12行的scope:false,这个是默认的,其实你不写也是false。这样drective继承了父scope,所以可以调用父作用域的方法,而声明新的scope即scope:{}形式就不会继承了,不过你依然可以用scope.$parent.myFunction()的方式调用。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式