2

$dialog サービスで作成されたモーダル内からディレクティブを呼び出す方法がわかりません。そのディレクティブは、モーダルのボタンを表示し、ng-click アクションをオーバーライドできる必要もあります。

これが私のモーダルテンプレートです:

<div class="modal-header">
<h1>Rechercher</h1>
</div>
<div class="modal-body">

  <search-person></search-person>

</div>
<div class="modal-footer">
  <button ng-click="close(result)" class="btn btn-primary">Close</button>
</div>

searchPerson ディレクティブ テンプレート:

<span>{{test}}</span>

searchPerson ディレクティブ自体:

angular.module('person.directives').directive("searchPerson", ['PersonService',    function (PersonService) {
return {
    restrict: "E",
    templateUrl: "person/views/searchPerson.html",
    scope: {},
    controller: 'searchPersonCtrl'
}
}]);

searchPerson コントローラー:

angular.module('person.controllers').controller('searchPersonCtrl', ['$scope', function ($scope) {
   $scope.test = 2;    
}]);

そして最後にモーダルコントローラー:

 angular.module('person.controllers').controller('DialogController', ['$scope', 'dialog', function($scope, dialog) {
    $scope.test = 2;
    $scope.close = function (result) {
       alert('modal scope');
       dialog.close($scope.test);
    };
 }]);

では、searchPerson コントローラーとモーダル コントローラーを相互に通信させるにはどうすればよいでしょうか。

4

1 に答える 1

2

私は一歩行き過ぎたと思います。Modal のテンプレートとコントローラー、および内部のディレクティブを使用する代わりに、モーダルがディレクティブのテンプレートになりました。コードは次のとおりです。

<div class="modal-header">
<h1>Rechercher</h1>
</div>
<div class="modal-body">

<!-- this used to be the searchPerson directive but now the Modal and the directive are just the same directive -->
<span>{{test}}</span>


</div>
<div class="modal-footer">
   <button ng-click="close(result)" class="btn btn-primary">Close</button>
</div>
于 2013-04-17T10:53:48.407 に答える