控制器如何调用位于指令内的函数

时间:2015-01-30 16:29:05

标签: angularjs angularjs-directive

我有一个主控制器,我希望从主控制器调用位于指令示例中的函数:

angular.module('app',[]).
controller('mainCtrl',function($scope) {
      $scope.startProcess= function () {
                  //here how I like to call directive function like following :
                   directivename.doTheprocess();
              }

})
.directive('directivename',function (
      return {
              controller: function ($scope) {
                         $scope.doTheprocess= function () {
                                               $scope.fullname='Justfortest'
              template: <div class="popmod" ><input type=text ng-model="fullname" /></div>
             }

                         }
})

和HTML文件如下:                                                            

2 个答案:

答案 0 :(得分:0)

由于您没有为指令创建新范围,因此它继承了父范围。您可以从控制器内部调用$ scope.doTheProcess。

答案 1 :(得分:0)

以下代码可以帮助您..

var app = angular.module('twitterApp', []);

app.controller("AppCtrl", function ($scope) {
  $scope.loadMoreTweets = function () {
    alert("Loading tweets!");
  }
})

app.directive("enter", function () {
  return function (scope, element, attrs) {
    element.bind("mouseenter", function () {
      scope.loadMoreTweets();
    })
  }
})

或jst访问此链接以获得一个好主意 https://thinkster.io/egghead/directives-talking-to-controllers/

或访问这个小提琴 http://jsfiddle.net/simpulton/GeAAB/