【问题标题】:Restangular - _.contains() is not a functionRestangular - _.contains() 不是函数
【发布时间】:2016-04-27 15:14:46
【问题描述】:

如果您最近通过 bower 更新了 restangular,它将安装最新的 lodash - 新的 4.0。然而,这是一个问题,因为 restangular/angular 现在会抛出错误 - “_.contains() 不是函数。”

你是怎么解决的?

【问题讨论】:

    标签: javascript angularjs lodash restangular


    【解决方案1】:

    你不能把它放在 app.js 中

    // If Restangular ever updates to lodash 4.0 remove this.
    _.contains = _.includes
    

    【讨论】:

    • 你真的可以这样做 _.contains = _.includes;在 lodash 中查看 lodash.js 和 mapping.js。我认为这本质上就是他们在这里所做的。 lodash.js lodash.each = forEach; mapping.js 'forEach': ['each'] 我宁愿使用monkeypatch,直到它被修复,而不是为一种方法降级我的所有东西。
    • 只需将所有对_.contains 的调用替换为_.includes
    【解决方案2】:

    如果您没有明确指定 lodash 的条目并且这会作为 restangular 的依赖项安装,您可以卸载它们并重新安装 lodash (3.10.1) 以解决此问题。

    bower uninstall restangular
    bower uninstall lodash
    bower install --save lodash#3.10.1
    bower install --save restangular
    

    这样您就不需要进入bower.json 文件。

    来源:https://github.com/mgonto/restangular/issues/1294

    【讨论】:

      【解决方案3】:

      解决方案非常简单——你需要告诉restangular使用比最新的lodash——3.10.0更低的版本

      通过 bower.json

       "lodash": "~3.10.0"
      

      https://github.com/mgonto/restangular/issues/1298

      【讨论】:

      • 删除了 17 个别名 _.all、_.any、_.backflow、_.callback、_.collect、_.compose、_.contains、_.detect、_.foldl、_.foldr 、_.include、_.inject、_.methods、_.object、_.#run、_.select 和 _.unique
      猜你喜欢
      • 2019-07-03
      • 1970-01-01
      • 2016-04-26
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 2019-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多