如何使用Ember.js在模板中显示特定字符​​串而不是模型值?

时间:2015-07-27 15:54:14

标签: javascript ember.js

我有一条Ember路线,显示一系列记录。该模型包括status,如此:

status: DS.attr('number'),

状态值将返回为:-101

使用把手显示模板中每条记录的值没有问题:{{modelName.status}}。这样,每条记录的状态都反映为:-101

我想做以下事情:

  

如果status的值为-1,则显示字符串“Error”   如果status的值为0,则显示字符串“Completed”   如果status的值为1,则显示字符串“Pending”。

这可能吗?

3 个答案:

答案 0 :(得分:1)

怎么样:

status: DS.attr('number'),
statusLabel: function(){
  var statuses = ['Error', 'Completed', 'Pending'];
  return statuses[this.get('status') + 1];
}.property('status')

然后在你的模板中:

{{modelName.statusLabel}}

答案 1 :(得分:1)

你的问题不是很清楚,因为我的选择Ember信托助手会帮助你。 https://github.com/jmurphyau/ember-truth-helpers

您需要安装Ember信任助手。

{{if(not-eq modelName.status -1)}}错误

答案 2 :(得分:0)

第一个答案的一小部分 - 让我们说我的需求是:

  

如果状态值为-1,则显示字符串"错误"。
   如果status的值为0,则显示字符串" Completed"。
   如果状态值大于0,则显示字符串"待定"。



statusLabel: function() {
  var currentStatus = this.get('status');
  var statuses = ['Error', 'Completed', 'Pending'];
  if (currentStatus > 0) {
    return statuses[2];
  } else {
    return statuses[this.get('status') + 1];
  }
}.property('status'),