Javascript - 在另一个函数的对象中添加新值?

时间:2014-08-19 12:36:26

标签: javascript underscore.js

我有这段代码:

_.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是员工对象。

0 个答案:

没有答案