我有一个主控制器,我希望从主控制器调用位于指令示例中的函数:
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文件如下:
答案 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/