2012-02-06 134 views
3

我正在使用Ember.js从json提要创建表。我有要求闪烁正在改变的值(在表格行内)。我如何在Ember.js中执行此操作?如何刷新Ember.js中更改的值

我的模板如下所示:

<tbody> 
    {{#each Quotes.quotesController.content}} 
     <tr> 
      <td class="quote-name">{{name}}</a> 
      <td class="quote-code">{{code}}</a> 
      <td class="quote-value">{{value}}</a> 
      <td class="quote-bid">{{bid}}</a> 
      <td class="quote-offer">{{offer}}</a> 
     </tr> 
    {{/each}} 
</tbody> 

下面是获取并更新报价代码:

fetchQuotes: function() { 
    var scope = this; 
    $.getJSON('/rest/quotes', function(data) { 
     $.each(data, function(index, quote) { 
      scope.updateQuote(quote); 
     }); 
    }); 
} 

只是作为比较,在Backbone.js的,我是有约束力改变事件在属性级别并在回调中触发动画。例如:

this.model.bind('change:value', this.updateValue); 

updateValue: function() { 
    var td = $(this.el).children('.quote-value'); 
    td.html(this.model.get('value')); 
    td.animate({color: animationColor}, 200) 
     .animate({color: '#000000'}, 3800, 'easeInQuint'); 
}, 

我不知道使用Ember.js是否可以使用这种方法/建议。

编辑: 我现在差不多已经有了。我可以处理表格单元格上的事件并将其颜色更改为任何内容。请参阅this jsfiddle - 单击值列中的任何单元格,它将变为红色。我唯一不知道的是如何捕获对表格单元格值的更改,而不是单击事件。有没有我能捕捉到的变化事件?

回答

3

请参阅以下jsFiddle(修改答案的另一个问题)。我认为从那里你可以做你需要的东西,但总之你需要让一个观察者观察你的控制器上正在修改的数组的属性的变化。

编辑回应一号评论:

这里是为了应对这一评论工作的解决方案:http://jsfiddle.net/ud3323/ykL69/

+0

感谢ud3323。但我不太清楚如何才能到达我需要从观察者处闪光的表格单元格。据我所知,观察者知道已经改变的模型属性,并且从模型中我不能/不应该去视图(s)。顺便提一句,我在视图层面提出了一个解决方案,我可以捕获视图中的事件并直接更改关联的视图元素。唯一的问题是我不知道如何在视图级别捕捉“更改”事件。请参阅我对原始问题的编辑。再次感谢你的帮助。 – Naresh 2012-02-10 04:53:24

+0

看到我的编辑和jsFiddle :) – 2012-02-10 07:11:03

+0

谢谢!从代码中学到很多东西。我喜欢你如何取出“tr”标签并将其改为视图。 – Naresh 2012-02-10 19:01:12

相关问题