在深入了解 ui-grid-datepicker 的工作原理后,我发现了一个肮脏的解决方案(我认为没有干净的解决方案)
您可以在此处看到一个 plunker,我在其中更改了关闭按钮的文本:
http://plnkr.co/edit/za99R9wUOcM2s2EkHLsv?p=preview
问题是更改完成按钮的设置必须应用于具有指令“uib-datepicker-popup”的元素
因此,如果您想修改完成按钮的标签,您必须更改 ui-grid-settings 库(这不是一个好的解决方案,但我没有看到任何其他方式)。
从此:
template: function(element, attrs) {
var html = '<div class="datepicker-wrapper" ><input uib-datepicker-popup is-open="isOpen" ng-model="' + attrs.rowField + '" ng-change="changeDate($event)" on-open-focus="false" disabled/></div>';
return html;
},
您将其更改为(注意我添加了带有参数的 close-text 属性):
template: function(element, attrs) {
var html = '<div class="datepicker-wrapper" ><input uib-datepicker-popup is-open="isOpen" close-text="' + attrs.closeLabel + '" ng-model="' + attrs.rowField + '" ng-change="changeDate($event)" on-open-focus="false" disabled/></div>';
return html;
},
然后在你的主文件 app.js 中,从这个:
editableCellTemplate: '<div><form name="inputForm"><div ui-grid-edit-datepicker row-field="MODEL_COL_FIELD" ng-class="\'colt\' + col.uid"></div></form></div>'
你把它改成:
editableCellTemplate: '<div><form name="inputForm"><div ui-grid-edit-datepicker close-label="' + closeLabelTranslated + '" row-field="MODEL_COL_FIELD" ng-class="\'colt\' + col.uid"></div></form></div>'
剩下的唯一事情就是将变量 closeLabelTranslated 设置为您想要的任何内容,例如使用 angular-translate 模块(我没有将它添加到 plunker):
var closeLabelTranslated = $filter('translate')('DONE');
就像我说的那样,这是一个肮脏的解决方案,但似乎 ui-grid-edit-datepicker 没有为您提供此选项,因此您必须手动添加它