我已经关注了Angular Material的官方文档,但我无法使其成功。我无法看到我的代码出了什么问题。 mdDialog甚至没有显示出来并且对我的取消功能感到困难。
我的代码
$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'
答案 0 :(得分:1)
这是来自角度材质的示例,只有一些更改,例如,您可以将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范围与控制器范围不同。对于谷歌使用
vm = this;