2016-01-21 29 views
5

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

你如何解决?

回答

7

的解决方案很简单 - 你需要告诉restangular使用的版本低于最新lodash - 3.10.0

通过bower.json

"lodash": "~3.10.0" 

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

+1

移除17别名 _.all,_.any,_.backflow,_.callback,_.collect,_.compose,_.contains,_.detect,_.foldl, _.foldr,_.include,_.inject,_.methods,_.object,_。#run,_.select,&_.unique –

3

Couldn”你把这个在app.js

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

有一点代码味道... imo。 –

+0

你真的可以做到这一点 _.contains = _.includes; 检查lodash中的lodash.js和mapping.js。我认为这是他们在这里做的事情。 lodash.js lodash.each = forEach; mapping.js 'forEach':['each'] 我只是宁愿monkeypatch,直到它被修复,而不是降级我的一切方法。 –

4

如果你还没有指定编辑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