$ mdDialog ok /取消角度转换

时间:2017-11-07 10:02:30

标签: angularjs angular-material mddialog

1)需要在js中设置$mdDialog,我找不到定义在HTML代码中创建对话框所需属性的方法。由于我需要翻译okcancel按钮,我需要在HTML中构建对话框(至少部分)(因为建议在视图中进行翻译)。我似乎无法弄清楚如何做到这一点。

2)htmlContent需要加载一个注入的HTML页面。 _disclaimer.html,我想我可能会删除按钮(ok/cancel)并将其设置在免责声明中,我似乎无法弄清楚这一个。

我想要一个带有翻译的ok / cancel按钮的模态和一个注入的HTML页面(_disclaimer.html)。我不介意在_disclaimer.html中编写ok / cancel按钮。请指出我正确的方向

        var showDisclaimer = function showDisclaimer()  {
            var confirm = $mdDialog.confirm()
                .title('Are you sure to delete the record?')
                .htmlContent('my html content')
                .ok('Yes')
                .cancel('No');
            $mdDialog.show(confirm).then(function () {
                $scope.status = 'Record deleted successfully!';
            }, function () {
                $scope.status = 'You decided to keep your record.';
            });
        };

1 个答案:

答案 0 :(得分:0)

我假设您已正确加载pascalprecht.translate并为您想要的任何内容添加了翻译。 (在这种情况下为OK/Cancel)。现在,您可以在控制器中翻译它们并在视图中为该值建模。例如  controller.js

 app.controller('TranslateMe', ['$scope', '$translate', function ($scope, 
  $translate) {
  $translate('PAGE.OK')
    .then(function (translatedValue) {
        $scope.ok = translatedValue;
    });
$translate('PAGE.CANCEL')
    .then(function (translatedValue) {
        $scope.cancel = translatedValue;
    });
}); 

同样适用于您想要的任何其他价值。对于翻译,值不需要在html中。您甚至可以在controller中翻译它们,如上所述。现在,对于ok/cancel的翻译文本,您可以执行类似

的操作
var showDisclaimer = function showDisclaimer()  {
        var confirm = $mdDialog.confirm()
            .title('Are you sure to delete the record?')
            .htmlContent('my html content')
            .ok( $scope.ok)
            .cancel( $scope.cancel);
        $mdDialog.show(confirm).then(function () {
            $scope.status = 'Record deleted successfully!';
        }, function () {
            $scope.status = 'You decided to keep your record.';
        });
    };

希望这会有所帮助