在underscorejs地图中调用coffeescript函数

时间:2019-01-22 06:40:04

标签: coffeescript

我有一个我正在发出Ajax请求的coffeescript文件:

$.ajax url,
  type: 'GET'
  dataType: 'json'
  success: (data) =>
    @items = _.map data, (item) ->
      item.trimmedName = @.trimmedSearchString item.name
      return item

但是调用此命令会在控制台中输出以下错误:

  

未捕获的TypeError:this.trimmedSearchString不是函数

当我检查生成的javascript时,我得出的结论是coffeescript由于某些原因使范围弄乱了

_this.items = _.map(items, function(item) {
          item.trimmedName = this.trimmedSearchString(item.name);
          return item;
        });

该功能定义为我拥有的所有其他功能:

trimmedSearchString: (value) ->

我在这里看到两种解决方案。首先用于循环

for item in items

我已经尝试过了,并且实际上可以与其余代码一起使用,但是我想使用undescorejs s` map函数,所以我发现的解决方法(?)是使用_this而不是调用该函数@

item.trimmedName = _this.trimmedSearchString item.name

但是我觉得找出范围是一项艰巨的工作。所以我的问题是如何在map函数内部以coffeescript方式调用我的函数?

0 个答案:

没有答案