我在控制器中有一个作用域函数,我需要从指令中触发它,指令是下拉菜单,所以无论何时我要更改值,我需要从指令触发一个函数控制器。从Angular中的指令调用控制器作用域函数
HTML
<dropdown-single-select filter-params=false eventlstn="selectTab('summary')" api-params="serviceApiParams" select-options="filterData.classFilter" selected-value="filterData.selectedClassOptions" ></dropdown-single-select>
指令
.directive('dropdownSingleSelect',['$document', function($document){
return {
scope: {
onSelect: '&',
selectOptions: '=',
isoFilterParams:'=filterParams',
isoEventListener:'=eventListener',
selectedValue:'=',
defaultOption:'=',
disable:'&',
apiParams:'='
},
restrict: 'E',
templateUrl: 'commonActions/waggle-single-select.tpl.html',
link: function(scope, element, attr) {
scope.toggleOptions= function(){
scope.showOptions = !scope.showOptions;
}
scope.selectOption = function(option){
if(scope.apiParams.reload){
scope.apiParams.classViewId=option.classViewId;
scope.$apply(attr.eventlstn);
}
}
};
}])
控制器
.controller('studentSummaryReportCtrl', ['$scope', function ($scope){
$scope.selectTab=function(data){
console.log(data);
}
}])
下拉工作正常和ALS o selectoption工作正常,但涉及到作用域。$ apply(attr.eventlstn);它不工作
您可以在法传递与“&”的指令,只是把它从向链路功能类似这样的'scope.selectTab(“摘要”)' –
感谢您的回答,但我打过电话与功能$发射,它像一个魅力:) –