angularjs
2017-06-16 1 views -1 likes 
-1

はのコーンという名前のコントローラが機能ページの外側AngularJSコントローラの機能を呼び出すことはできますか?

function showAlert() { 
     alert("Hello, people!"); 
    } 

を持っていると私は何とか「子」のdivからそのコーンコントローラの機能を呼び出すことができます

<div id='parent' ng-controller='cOne'> 
     <span ng-click='cOne.showAlert()'>Click For Alert</span> 
    <div id='child' ng-controller='cTwo'> 
     <span ng-click='$parent.cOne.showAlert()'>Click For Parent Controller Alert </span> 
    </div> 
</div> 

下に示すように、私は状況があるとしましょうか?私は$ scope、$ rootScopeと$ parentを使用しようとしました。私はそれをどうやって行うのですか?

答えて

1

showAlert$scopecOneコントローラーを割り当て、子供からはちょうどを呼び出してください。

angular.module('myApp', []) 
 
    .controller('cOne', function($scope) { 
 
     $scope.showAlert = function() { 
 
     alert('cOne alert'); 
 
     }; 
 
     }) 
 
    .controller('cTwo', function($scope) {});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="myApp" ng-controller="cOne"> 
 
    <span ng-click='showAlert()'>Click For Alert-1</span> 
 
    <div ng-controller="cTwo"> 
 
    <span ng-click='$parent.showAlert()'>Click For Alert-2</span> 
 
    </div> 
 
</div>

1

scopeまたはコントローラインスタンスのいずれかに関数をバインドする必要があります。それはスコープ

$scope.showAlert = function() { 
    alert("Hello, people!"); 
} 

にバインドされている場合は、あなたがインスタンスをコントローラにバインドする場合は、あなたが方法でそれを呼び出すことができるようになります

<span ng-click='$parent.showAlert()'>Click For Parent Controller Alert </span> 

ようにあなたをそれを呼び出すことができるようになりますちょうど投稿されました。

関連する問題