在我的角度项目中,我使用Angular.js material。我想要显示$mdialog
与自定义控制器,其中用户更改一些数据,这些数据应该适用于我的$scope
变量。比如我现在做的事:Angular.js从另一个控制器回调
function myControllerFn($scope, MyService){
// I do copy of my service variable because I don't want to change it until user will click save button
$scope.name = angular.copy(MyService.name);
$scope.editCurrentProfile = function() {
$scope.showEditProfileDialog($scope.name).then(function(name){
$scope.name = name;
}
}
$scope.showEditProfileDialog = function(name) {
var deferred = $q.defer();
$mdDialog.show({
controller: 'editProfileViewCtrl',
templateUrl: 'controllers/editProfileDialog.tmpl.html',
locals: {
name: name,
deferred: deferred
}
});
return deferred.promise;
};
}
然后在对话框控制我做的:
function editProfileViewCtrl($scope, name, deffered) {
deferred.resolve('newName');
}
但我认为这是错误的方式。那么在没有新服务的情况下,两个视角控制器之间以角度进行通信的最佳方式是什么?或者更好地创建另一个服务,如:EditDialogService
,我将保存结果?
怎么样错误(拒绝承诺)? – Arti
啊,对不起。找到了 !可以使用$ mdDialog.hide()解决的承诺或使用$ mdDialog.cancel()拒绝的承诺。谢谢 – Arti