首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$interpolation误差在FireFox中的应用

$interpolation误差在FireFox中的应用
EN

Stack Overflow用户
提问于 2013-12-24 20:53:41
回答 2查看 1.5K关注 0票数 1

我的约会来自数据库,如下所示:2013-11-21 17:43:20

以下代码在FireFox中是有缺陷的,但在Chrome中工作得很好:

代码语言:javascript
复制
<ul class="job-lookup-results" ng-show="data" style="padding:0 10px;">
    <li class="job-lookup-result" ng-repeat="result in data" style="margin:5px 0; font-size:80%;"><a href="/admin/jobs/edit/{{result.Job.id}}" class="job-lookup-result-link">{{result.Job.name}}</a> ({{result.Job.id}}), {{result.Company.name}}, {{result.Job.created | dateToISO | date:'shortDate'}}</li>
    <li class="job-lookup-result" ng-hide="data.length > 0">No matches found.</li>
</ul>

以下是错误:

代码语言:javascript
复制
[15:17:40.890] "Error: [$interpolate:interr] http://errors.angularjs.org/1.2.5/$interpolate/interr?p0=%20(%7B%7Bresult.Job.id%7D%7D)%2C%20%7B%7Bresult.Company.name%7D%7D%2C%20%7B%7Bresult.Job.created%20%7C%20dateToISO%20%7C%20date%3A'shortDate'%7D%7D&p1=RangeError%3A%20invalid%20date
...

我不明白这个错误,但是如果它与我的自定义过滤器相关,这里是:

代码语言:javascript
复制
app.filter('dateToISO', function() {
  return function(input) {
    input = new Date(input).toISOString();
    return input;
  };
});

更新当我删除它工作的| dateToISO |时。因此,它似乎连接到自定义筛选器。

EN

回答 2

Stack Overflow用户

发布于 2013-12-24 23:07:09

好吧,由于FireFox对糟糕的日期格式有兴趣(Chrome会忽略它),您将不得不手动修复该格式。过滤器仍然是要走的路。

标记:

代码语言:javascript
复制
<div>{{Object.created | badDateToISO | date:'shortDate'}}</div>

JavaScript:

代码语言:javascript
复制
app.filter('badDateToISO', function() {
  return function(badTime) {
    var goodTime = badTime.replace(/(.+) (.+)/, "$1T$2Z");
    return goodTime;
  };
});

现场演示(点击)。

票数 3
EN

Stack Overflow用户

发布于 2014-10-09 17:51:56

对我来说,唯一有效的跨浏览器格式是:

代码语言:javascript
复制
var date = new Date(input); // Where input is '2013-12-25T13:12:01' for example
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20766636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档