$mdDialog 和控制器
$mdDialog and controllers
我有两个 $mdDialog
想在两个不同的视图中使用,每个视图的控制器完全相同。我想要的是在每个控制器中都有 $mdDialog.show()
函数,传递一个对象和一个控制器文件来完成工作。
但是当我尝试这个时,我收到一条错误消息,提示未定义 DialogCtrl。
例如,
在视图控制器中:
angular.module('myApp')
.controller('myViewController', [
'$scope',
'$mdDialog',
myViewController
]);
function myViewController($scope, $mdDialog, myObj) {
var obj = myObj;
vm.showDialog = function(event) {
$mdDialog.show({
controller: DialogCtrl,
templateUrl: 'partials/dialog.html',
clickOutsideToClose: false,
parent: angular.element(document.body),
targetEvent: event,
openFrom: {left: 1500},
closeTo: {left: 1500},
locals: { object: obj }
})
.then(function(response) {
//do stuff
});
};
然后我的对话框控制器:
angular.module('myApp')
.controller('DialogCtrl', [
'$scope',
'$mdDialog',
'object',
DialogCtrl
]);
function DialogCtrl( $scope, $mdDialog, object ) {
$scope.obj = object;
$scope.answer = function(answer) {
$mdDialog.hide({
answer: answer,
dataToPass: $scope.obj.name
});
};
}
尝试将控制器名称放在引号下:
$mdDialog.show({
controller: 'DialogCtrl',
templateUrl: 'partials/dialog.html',
clickOutsideToClose: false,
parent: angular.element(document.body),
targetEvent: event,
openFrom: {left: 1500},
closeTo: {left: 1500},
locals: { object: obj }
})
这将消除错误。
我有两个 $mdDialog
想在两个不同的视图中使用,每个视图的控制器完全相同。我想要的是在每个控制器中都有 $mdDialog.show()
函数,传递一个对象和一个控制器文件来完成工作。
但是当我尝试这个时,我收到一条错误消息,提示未定义 DialogCtrl。
例如, 在视图控制器中:
angular.module('myApp')
.controller('myViewController', [
'$scope',
'$mdDialog',
myViewController
]);
function myViewController($scope, $mdDialog, myObj) {
var obj = myObj;
vm.showDialog = function(event) {
$mdDialog.show({
controller: DialogCtrl,
templateUrl: 'partials/dialog.html',
clickOutsideToClose: false,
parent: angular.element(document.body),
targetEvent: event,
openFrom: {left: 1500},
closeTo: {left: 1500},
locals: { object: obj }
})
.then(function(response) {
//do stuff
});
};
然后我的对话框控制器:
angular.module('myApp')
.controller('DialogCtrl', [
'$scope',
'$mdDialog',
'object',
DialogCtrl
]);
function DialogCtrl( $scope, $mdDialog, object ) {
$scope.obj = object;
$scope.answer = function(answer) {
$mdDialog.hide({
answer: answer,
dataToPass: $scope.obj.name
});
};
}
尝试将控制器名称放在引号下:
$mdDialog.show({
controller: 'DialogCtrl',
templateUrl: 'partials/dialog.html',
clickOutsideToClose: false,
parent: angular.element(document.body),
targetEvent: event,
openFrom: {left: 1500},
closeTo: {left: 1500},
locals: { object: obj }
})
这将消除错误。