【问题标题】:$mdDialog ok/cancel with angular translation$mdDialog ok/cancel with angular translation
【发布时间】:2018-04-19 16:19:40
【问题描述】:

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

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

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

        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.';
            });
        };

【问题讨论】:

  • 你想要什么?你的问题不清楚
  • “谁能给我建议解决这个问题的最佳方法”,抱歉不清楚
  • 什么意思需要在js中设置$mdDialog
  • 你想从你的翻译中获得YesNo
  • 我想在 HTML 中设置 OK 和 Cancel,以便翻译它们。

标签: angularjs angular-material mddialog


【解决方案1】:

我假设您已正确加载 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.';
        });
    };

希望这会有所帮助

【讨论】:

    猜你喜欢
    • 2016-05-30
    • 2014-11-06
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多