是否可以翻译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'
}
});
})
答案 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
中,将已翻译的name
和description
值作为普通注射剂注入
答案 1 :(得分:0)
MYWIDGET应定义为具有NAME和DESCRIPTION属性值的常量,然后注入配置块,就像注入$ filter
一样查看angular module system以了解如何创建常量
答案 2 :(得分:0)
我通过翻译自定义模板中的值解决了这个问题。
dashboardProvider.customWidgetTemplatePath('src/...pathToTemplate')
我还为所有编辑模板使用自定义模板,例如editTemplateUrl等。
(删除了重复的问题..)