Angularjs使用过滤器为模型添加属性?

时间:2014-01-04 01:50:31

标签: angularjs

我有一个时间戳,我想以特定的方式格式化。例如:

今天下午4:57:30(几秒钟内)

现在,我可以使用过滤器输出时间戳,并让过滤器只输出html。

但是,我宁愿在模板中保留html标签/类,并且以某种方式让过滤器修改原始数据,并在模板中进行过滤器调用后输出一些新属性。

例如,我使用ng-repeat来查看看起来像这样的对象数组:

{timestamp:123345236,某事:'asdf'}

我想运行一个过滤器,使它看起来像这样:

{timestamp:123345236,今天:'今天',时间:'4:57:30',relative_time:'(几秒钟内)'}

然后我可以在我的模板中引用这些新键输出。

这可能吗?

1 个答案:

答案 0 :(得分:2)

我认为你需要这样的东西:

app.filter("myFilter",function(){
    return function(input) {
      var arr = [];
      angular.forEach(input, function(value, key){
          value.newCustomProperty = "Custom property" + key;
          this.push(value);
        }, arr);

      return arr;
    }
});

将过滤器应用于ng-repeat:

<div ng-repeat="i in data | myFilter">

</div> 

DEMO