我正在使用angular-ui:s date指令(uiDate)并需要配置它。我可以这样做:
app.value('ui.config', {
date: {
dateFormat: 'yy-mm-dd', // <-- I want to use $locale.shortDateFormat
changeMonth: true,
changeYear: false
}
});
其中app
是我的应用程序模块。
我想要做的是从angulars $ locale对象定义dateFormat
,使用i18n包含我的文化特定日期格式。
app的value
属性在那时似乎无法访问$ locale,所以我觉得这是错误的做法。
如何从locale-object到我的指令提供dateformat和其他东西,而不必修改ui-date的源代码(因为它是我项目的外部依赖项)。
我可以通过在控制器中设置此对象来解决此问题,但这不是我想要的。这是一个应该适用于我所有控制器的配置。
答案 0 :(得分:0)
AngularUI目前正在进行一些重构,这会稍微改变一下。
无论如何,您始终可以将dateFormat属性传递给uiDate内联,它将与全局配置合并。我不知道是否可以按照建议在app.run中设置.value(),但我认为.value()
应该很容易被覆盖。您甚至可以尝试修改对象,因为理论上会保留引用(取决于执行指令注入函数的时间)。
对不起它没什么用处。
答案 1 :(得分:0)
您可以使用bootstrap
来执行此操作。你甚至不需要在“内部”角度来使用它。
有关bootstrap的更多信息:http://docs.angularjs.org/guide/bootstrap和http://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/