2015-11-05 43 views
0

我不得不将项目从导轨移动到角度,这对我的耻辱很重要。角度大于当前时间的日期

我怎么会去改变这个

<% if souporder.datefrom > Time.now %>

成角方面?

继承人我的代码

<tr ng-repeat="soup in souporders"> 
       <td>{{soup.id}}</td> 
       <td>{{soup.soup}}</td> 
       <td>{{soup.datefrom}}</td> 
       <td>{{soup.dateto}}</td> 
      </tr> 

编辑 这在我看来是

  <div ng-repeat="soup in souporders"> 
     <tr ng-if="date == soup.datefrom"> 

而且这是在我的控制器

$scope.date = new Date(); 
+0

您是否期望在当前时间通过datefrom后立即更新视图?我想,你将需要一个事件。这不是Angular的强项,但当然是可行的。 –

+0

只希望它能够在页面刷新上完成,就像rails一样,它的日期不是分钟,应该已经明确了! – Tester123

+0

另外,为什么“对我的耻辱”呢? Angular是一个很好的框架,但即使你认为它不是,如果你不会在你的问题中侮辱框架,你可能会从角度专家得到更好的答案:) –

回答

1

您的评论澄清说你只需要在页面r上计算最新,这很简单,并不需要太多的角魔法。

在初始化视图的控制器时,只需设置一个变量,确定订单日期是否在将来,并将其公开在范围中。然后直接绑定到它,并使用绑定功能{{:myvariable}}来提高性能,因为它不会改变。

根据您的需要,您甚至可以让服务器计算该值并将其作为您的JSON订单数组中的每个订单的属性返回。 (我猜了一下,在你在做什么,但如果你没有做什么,我认为你做的,你能适应答案。)

更新:我只是意识到,也许你的目标不是根据日期对每行进行一些特别的处理,而是根据日期过滤列表。我的答案大部分仍然存在,但你可以忘记绑定的细节。你需要在ng-repeat上称为角度过滤器,并使用管道(|)字符完成。您可以通过搜索主题来阅读关于它的所有信息。在angularjs文档中有一些例子。但基本上,而不是:

<tr ng-repeat="soup in souporders"> 
    <td>{{soup.id}}</td> 
    <td>{{soup.soup}}</td> 
    <td>{{soup.datefrom}}</td> 
    <td>{{soup.dateto}}</td> 
    <td>{{:soup.active}}</> <!--do something nice here instead of just displaying true/false ---> 
</tr> 

你可能想:

<tr ng-repeat="soup in souporders | filter:{current: true}"> 
    ...etc 
</tr> 

无论是服务器或客户端上,当你从服务器加载数据,你可以一个布尔属性添加到汤料数组中的项目表示它是否是最新的。

这是什么来完成:

我们根据您的不动态改变,需要重新加载页面更新属性项的过滤列表。但速度很快(但不是最快的,如果你真的需要发疯 - 不要过早地进行优化,当做到这一点时你会知道该怎么做,而现在不是这样)。

为什么它不是很大:

这不是动态的,它不是角y或声明。但根据您的要求,这是一个解决方案。我会花一些时间考虑你是否希望这是动态的,如果没有,为什么没有显示的项目甚至会从服务器返回。他们是否在页面的其他地方使用?

+0

你好,你介意创建一个例子? – Tester123

+0

哪部分?风景?控制器? –

+0

让我再添加一些代码,我已经做了一分钟:) – Tester123