我已经遵循了官方的角度材料的文件,但我无法使它工作。我看不出我的代码有什么问题。mdDialog甚至没有出现,而是直接进入了我的cancel函数。
我的代码
$scope.createInviteDialog = function(ev, line, index){
var parentEl = angular.element(document.body);
var confirm = $mdDialog.show({
parent: parentEl,
locals: {
line: line,
index: index
},
targetEvent: ev,
template:
'<md-dialog aria-label="List dialog">' +
' <md-dialog-content>' +
'<md-input-container class="md-block">' +
'<label>Write something about you!!</label>' +
'<textarea ng-model="mensaje" md-maxlength="120" rows="4" md-select-on-focus></textarea>' +
'</md-input-container>' +
'<md-dialog-actions>' +
' <md-button ng-click="cancel()" class="md-primary">' +
' Cancelar' +
' </md-button>' +
'<md-button ng-click="invite("pep")" class="md-primary">' +
' Crear postulacion!' +
' </md-button>' +
'</md-dialog-actions>' +
'</md-dialog>'})
.then(function(invite){
console.log('create invite');
}, function(){
console.log('cancel invite');
});
}; 控制台日志
'cancel invite'发布于 2017-01-18 19:40:52
这是来自角度材料的例子,有一些变化,例如,您可以将html代码直接作为字符串放在.htmlContent中,它将显示在对话框中。
$mdDialog.confirm()
.title('Title')
.htmlContent(html)
.ariaLabel('Lucky day')
.ok('Confirm')
.cancel('Continuar con el envio');
$mdDialog.show(confirm).then(function() {},function(){})如果您绝对需要在对话框中有作用域,我建议您创建一个预先呈现的对话框。
$mdDialog.show({
controller: CustomController,
templateUrl: '__path/custom.html',
targetEvent: ev,
clickOutsideToClose: true
})
.then(function(answer) {}, function() {});
function CustomController($scope, $mdDialog) {
$scope.hide = function() {
$mdDialog.hide();
};
}其中唯一的麻烦是,您需要创建一个新的html,没有body、html标记或任何东西,只需要一个您想要的对话框,但是这样您就可以从您需要的CustomController中接收到任何东西。请注意,customControllers作用域将与控制器作用域不同。对于这个google,使用的是
vm = this;https://stackoverflow.com/questions/41699978
复制相似问题