我需要在 $ mdDialog 中调用功能。此功能已从父级传递给我的指令。
<get-list callback="getList()" ></get-list>
要获取我的get-list指令中的函数。
function directive() {
return {
restrict: 'E',
scope: {
callback: '&?'
},
templateUrl: "",
controller: function($scope) {
'ngInject';
}
现在在我的get-list指令中,我有一个$ mdDialog。
$scope.save = function(){
$mdDialog.show({
templateUrl: '',
escapeToClose: true,
clickOutsideToClose: true,
controller: function($scope) {
$scope.teste = function(){
$scope.callback()
}
}
})
}
我需要在其中调用函数getList(),并且出现错误 $ scope.callback()不是函数
答案 0 :(得分:1)
$mgDialog
的隔离范围不同于您的指令之一,
您可以尝试跟踪原始范围并在$mgDialog
控制器中使用它
$scope.save = function(){
var outerScope = $scope;
$mdDialog.show({
templateUrl: '',
escapeToClose: true,
clickOutsideToClose: true,
controller: function($scope) {
$scope.teste = function(){
outerScope.callback();
}
}
})
}
或将回调作为参数传递
$scope.save = function(){
$mdDialog.show({
templateUrl: '',
escapeToClose: true,
clickOutsideToClose: true,
locals: {
callback: $scope.callback
},
controller: function($scope, callback) {
$scope.teste = function(){
callback();
}
}
})
}