试图在Angular(Blur Admin)中将adf-widget的标题和描述国际化

时间:2016-12-07 13:07:12

标签: javascript angularjs

是否可以翻译adf-wiget的标题和说明?

我尝试过这样的事情,但它不起作用:

angular.module('adf.widget.myWidget', ['adf.provider'])
  .config(function(dashboardProvider, $filter){
    dashboardProvider
      .widget('myWidget', {
        title: $filter('translate')('MYWIDGET.NAME'),               
        description: $filter('translate')('MYWIDGET.DESCRIPTION'), 
        templateUrl: '{widgetsPath}/myWidget/src/view.html',
        controller: 'myWidgetCtrl',
        edit: {
          templateUrl: '{widgetsPath}/myWidget/src/edit.html'
        }
      });
  })
  .Controller [...]

或者有没有办法使用$ filter更新控制器中的信息?

非常感谢

//编辑:

我已经尝试了其他解决方案,但它仍无法运行:

angular.module('adf.widget.myWidget', ['adf.provider'])
  .config(function(dashboardProvider){
    function getName($filter) { var dcName = $filter('translate')('MYWIDGET.NAME'); return dcName; };
    dashboardProvider
      .widget('myWidget', {
        title: getName(),
        description: 'test',
        templateUrl: '{widgetsPath}/myWidget/src/view.html',
        controller: 'myWidgetCtrl',
        edit: {
          templateUrl: '{widgetsPath}/myWidget/src/edit.html'
        }
      });
  })

3 个答案:

答案 0 :(得分:1)

以下是如何使用解析块

的示例
angular.module('adf.widget.myWidget', ['adf.provider'])
  .config(function(dashboardProvider, MYWIDGET){
    dashboardProvider
      .widget('myWidget', { 
        templateUrl: '{widgetsPath}/myWidget/src/view.html',
        controller: 'myWidgetCtrl',
        edit: {
          templateUrl: '{widgetsPath}/myWidget/src/edit.html'
        },
        resolve: {
        description: function ($filter) {
          return $filter('translate')(MYWIDGET.DESCRIPTION)
         },
        name : function ($filter) {
         return $filter('translate')(MYWIDGET.NAME)
        }
         }
      });
  })

然后在您的控制器myWidgetCtrl中,将已翻译的namedescription值作为普通注射剂注入

答案 1 :(得分:0)

MYWIDGET应定义为具有NAME和DESCRIPTION属性值的常量,然后注入配置块,就像注入$ filter

一样

查看angular module system以了解如何创建常量

答案 2 :(得分:0)

我通过翻译自定义模板中的值解决了这个问题。

dashboardProvider.customWidgetTemplatePath('src/...pathToTemplate')

我还为所有编辑模板使用自定义模板,例如editTemplateUrl等。

(删除了重复的问题..)