我有这段代码:
_.each(events, function (e) {
filter_value = e[self.color_field][0];
if (!self.all_filters[e[self.color_field][0]]) {
filter_item = {
value: filter_value,
label: e[self.color_field][1],
color: self.get_color(filter_value),
avatar_model: (_.str.toBoolElse(self.avatar_filter, true) ? self.avatar_filter : false ),
is_checked: true,
test: 'test'
};
self.all_filters[e[self.color_field][0]] = filter_item;
}
if (! _.contains(self.now_filter_ids, filter_value)) {
self.now_filter_ids.push(filter_value);
}
});
我希望它使用新的键/对值扩展filter_item
对象(特别是将test
值更改为更有意义的值)。
我要为test
键添加的值我定义如下:
new instance.web.Model('hr.employee').query(["week_busyness"]).filter([["id", "=",e[self.color_field][0]]]).first().then(function(result){
return result.week_busyness //this is the value I need to add for test 'key' inside filter_item
});
所以我尝试将此函数包装在filter_item周围,但之后它就完全停止工作(我的意思是包装 - 在定义filter_item
之前启动函数,然后在过滤器项目之后结束并在其中分配值)。
我还尝试在最初定义后更新filter_item
。在我的功能中,我添加了这样的内容:filter_item.test = result.week_busyness
。这是应用的,但它并未应用于实际使用上述功能的地方。所以这种方法没有做任何事情。
如果我将我的函数分配给这样的变量:
week_busyness = new instance.web.Model('hr.employee').query(["week_busyness"]).filter([["id", "=",e[self.color_field][0]]]).first().then(function(result){
return result.week_busyness
});
并分配给test
键,然后它分配函数对象而不是实际的返回值。
所以问题。我怎样才能在filter_item
对象中正确插入该值?..
更新
" week_busyness" (如果我们可以调用它)函数为提供了id的员工返回float类型的小时数 - e[self.color_field][0]]]
返回employee的id(并且在过滤器中使用它来查找正确的员工)。此外,result
是员工对象。