0

我正在使用 angular-ui:s 日期指令 (uiDate) 并且需要对其进行配置。我可以这样做:

app.value('ui.config', {
    date: {
        dateFormat: 'yy-mm-dd', // <-- I want to use $locale.shortDateFormat
        changeMonth: true,
        changeYear: false
    }
});

app我的应用程序模块在哪里。

我想做的是定义dateFormatfrom angulars $locale 对象,它使用 i18n 包含我的文化特定日期格式。

app的value属性似乎无法访问 $locale 在这一点上,所以我觉得这是错误的方法。

如何在无需修改 ui-date 的源代码(因为它是我的项目的外部依赖项)的情况下,将 locale-object 中的 dateformat 和其他内容提供给我的指令。

我可以通过在我的控制器中设置这个对象来解决这个问题,但这不是我想要的。这是一个应该适用于我所有控制器的配置。

4

2 回答 2

0

AngularUI 目前正在进行一些重构,这会稍微改变这一点。

无论如何,您始终可以将 dateFormat 属性传递给 uiDate 内联,它将与全局配置合并。我不知道是否可以按照建议从 app.run 中设置 .value() ,但我认为.value()应该很容易覆盖。您甚至可以尝试修改对象,因为理论上会保留引用(取决于执行指令注入函数的时间)。

抱歉,它没有更多帮助。

于 2013-05-10T11:49:38.790 回答
0

你可以用它bootstrap来做到这一点。你甚至不需要在“内部”角度来使用它。

有关引导程序的更多信息:http: //docs.angularjs.org/guide/bootstraphttp://docs.angularjs.org/api/angular.bootstrap

只是一个注释......在网站上导航时,将版本设置为 1.2,以便您可以看到评论。这很有帮助。

HTML

<ul id="result">

</ul>

Javascript

var locale = angular.bootstrap(function ($locale) { }).get('$locale'),
    html = '';


for(var i = 0; i < locale.DATETIME_FORMATS.MONTH.length; i++) {
    html += '<li>' + locale.DATETIME_FORMATS.MONTH[i] + '</li>';
}

$('#result').html(html);

jsfiddle:http: //jsfiddle.net/82aRW/

于 2013-12-11T10:54:43.953 回答