[英]AngularJS - Call Controller function from Directive
的HTML
angular.element(document.querySelector('#dateControls')).append($compile("<search-date></search-date>")($scope));
指示
myApp.directive('searchDate', function ($compile, $rootScope,$timeout) {
var linker = function (scope, element, attrs) {
var template = '<button class="btn btn-default" ng-click="dateSearch() id="playbackSearch" search-date">Search</button>';
element.html(template);
$compile(element.contents())(scope);
};
return {
restrict: "EA",
replace: true,
link: linker
};
});
控制者
$scope.dateSearch = function(){
scope.userId = 1;
myModuleService.getData(userId) //call service
then(function (data) {
console.log(data);
}).catch(function (error) {
throw error;
});
};
如何調用控制器中定義的dateSearch()
函數?
您可以在指令本身中添加控制器。 myModuleService
是外部服務
喜歡
controller:function($scope,myModuleService)
{
$scope.dateSearch = function(){
scope.userId = 1;
myModuleService.getData(userId) //call service
then(function (data) {
console.log(data);
}).catch(function (error) {
throw error;
});
};
}
或你的風格
var controll:function($scope,myModuleService)
{
$scope.dateSearch = function(){
scope.userId = 1;
myModuleService.getData(userId) //call service
then(function (data) {
console.log(data);
}).catch(function (error) {
throw error;
});
};
}
return {
restrict: "EA",
replace: true,
link: linker,
controller:controll
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.