【发布时间】:2015-02-09 19:20:57
【问题描述】:
我有以下设置来按日期显示我的订单:
我有以下模板,显示给定一周的每个订单:(为简洁起见,我删除了一些 html)
模板:
{{#each ordersByDate in ordersByDateOfWeek}}
<div class="orders-by-date">
<div>
<span>{{order-date-formatted ordersByDate.date}}</span>
</div>
{{#each order in ordersByDate.orders}}
{{order.number}} {{! updates correctly}}
{{order.market.name}} {{! a hasmany property called here, does not update}}
{{/each}}
</div>
{{/each}
计算属性:
ordersByDateOfWeek: function () {
var result = []; // return value
var object = null
var date = null;
// add every order to an array with a date an order objects
this.forEach(function (order) {
// get the date of the order
date = order.get('created');
// create a new object that holds the orders for a given date
object = result.findProperty('date', date);
// create the object if it does not exist
if (!object) {
object = {
date: date,
orders: [],
// some more
};
// add the object with the date to the result
result.push(object);
}
// add the orders to the current object
object.orders.push(order);
// more calculations done here below
});
}.property('model', 'sortProperties', 'sortAscending'),
它的作用是,它创建一个像这样的对象数组:
[
{
"date":"2014-12-08",
"orders":[// order objects here],
// some more properties
},
{
"date":"2014-11-08",
"orders":[],
},
{
"date":"2014-10-08",
"orders":[],
},
]
我现在正在尝试几个小时,但我无法绕过它来让它工作。我的直觉说它与承诺有关?但是"orders: []" 数组中是真正的 Ember 对象,所以我认为它应该可以工作。
我希望有人能指出我正确的方向。
非常感谢各位!
编辑:100% 明确:我的订单模型仅包含订单。那个自定义对象是我自己创建的。这就是我认为数据绑定被破坏的原因。
【问题讨论】:
-
你签出
Ember.computed.sort了吗?还有一个标准属性arrangedContent,如果你正在寻找那种东西,它会被用作排序的结果。 -
您好,我来晚了,谢谢您的回答!但是我看不出这将如何工作,因为
arrangedContent也用于我已经使用的sortProperties。请参阅:emberjs.com/api/classes/… 我是否必须编写自己的arrangedContent并使用我自己的排序构建?如果您在答案中提供一个工作示例,我会接受它。 -
经过几天的摆弄,我对它做了赏金。我无法到达我想要的地方,因为安排好的内容不可能在原始项目之前有一个日期。
-
@DelphiLynx 能否请您分享您的小提琴,以便我们与基地合作?
-
一个 jsbin/jsfiddle 肯定会有帮助...
标签: javascript ember.js