V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
cstome
V2EX  ›  问与答

angularJS 可以在{{}}内放 function 吗?

  •  
  •   cstome · 2016-09-17 14:29:48 +08:00 · 1767 次点击
    这是一个创建于 2770 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近刚接触 AngularJS ,用到 ng-repeat ,但是 json 中有个数据是 timestamp ,需要解析成可以看的时间,这个要怎么处理啊?

    6 条回复    2016-09-17 23:18:15 +08:00
    Exin
        1
    Exin  
       2016-09-17 14:48:17 +08:00 via Android   ❤️ 1
    了解下 angular 的 filter
    stiekel
        2
    stiekel  
       2016-09-17 15:32:04 +08:00   ❤️ 1
    使用 Angular 本身提供的 date filter 来解决 https://docs.angularjs.org/api/ng/filter/date
    cstome
        3
    cstome  
    OP
       2016-09-17 15:51:42 +08:00
    @stiekel 还有个问题,加入我想用自己的 function 来解析 timestamp ,

    <div class="time">{{x.t | praseTime}}</div>
    app.filter('praseTime', function (x.t){return praseTS(x.t)});

    这样写为什么不行?
    filter 要写在 controller 前面还是后面还是里面?
    bdbai
        4
    bdbai  
       2016-09-17 17:13:49 +08:00 via Android
    @cstome 没用过 Angular 的人建议你把 function 里的 x.t 全改成 t 试试。
    stiekel
        5
    stiekel  
       2016-09-17 18:50:46 +08:00
    @cstome 如果你只是要显示时间,最好用 Angular 原生的 date filter 。

    filter 写在控制器外面,前面或者后面均可,因为它会先于控制器加载。

    你的过滤器写错了。而且,参数传递,不要使用 x.t 这种。
    cstome
        6
    cstome  
    OP
       2016-09-17 23:18:15 +08:00
    @stiekel
    我发现 ng-repeat=" x in xxx"的时候, x 是 object , t 是 x 的一个属性,在写 filter 的时候传递 x 就是{{x.t}}里面的值,也就是说不是传递 x.t ,而是 x 。。

    我之前想错了。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1010 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 19:31 · PVG 03:31 · LAX 12:31 · JFK 15:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.