Angular Undercore无法读取属性'查找'的未定义
Angular Underscore Cannot read property 'find' of undefined
我正试图从json服务返回具有特定"ID"的对象。我可以在控制台日志中看到对象,但任何迭代或使用underline_find的尝试都会给我"未定义"的
var metaresult = _.find($scope.results.results, function(rw){ return rw.id == $scope.answer1 });
给我这个错误:
TypeError: Cannot read property 'find' of undefined
at k.$scope.metaResult (https://evening-taiga-2443.herokuapp.com/js/controllers/MainController.js:173:21)
这是我的工厂:
app.factory('results', ['$http', function($http) {
return $http.get('js/services/results.json')
.success(function(data) {
return data;
})
.error(function(err) {
return err;
});
}]);
任何我的json结构:
{
"results": [
{
"id": "a"
},
.... and so on
编辑:所以问题似乎是依赖性。我试着使用ng下划线,我加载如下:
<script src="js/ng-underscore.min.js"></script>
然后是app.js
var app = angular.module("quizApp", ['720kb.socialshare', 'ngUnderscore']);
然后在我的控制器
app.controller('MainController', ['$scope', 'quiz', 'results', function($scope, quiz, results, underscore)
在控制台中键入"下划线"给了我:
Uncaught ReferenceError: underscore is not defined
编辑:只需要使用lodash 就可以了
var metaresult = _.find( ...
TypeError:无法读取未定义的属性"find">
这个错误意味着javascript不知道什么是_._是未定义的,当您执行_.find
时,将生成错误。您似乎没有正确加载库。请确保您已经添加了下划线js模块。一旦下划线被加载,_将引用js模块,您将能够使用所有方法。
一旦正确加载了库,它应该是:
var metaresult = _.findWhere($scope.results.results, { id: $scope.answer1.id });
http://underscorejs.org/#findWhere
_将引用lodash
或underscore
,这两个库都是javascript实用程序库。我建议你看看bower,它是一个前端库的包管理器,并确保你的项目中都有必要的文件,并且它们在你的HTML中被引用。
我个人建议您使用lodash而不是下划线,因为它本质上是一种替代品,并提供了性能优势。也就是说,绝对没有理由根据您在这里显示的代码在中使用有角度的模块包装器。只需下载lodash并将其包含在HTML中,就可以在控制器中使用它,而不必担心任何模块依赖性或控制器注入。
相关文章:
- 如何使用JavaScript查找未定义的CSS属性的值
- jQuery'查找'未定义
- 查找未定义值的所有对象
- TypeError:无法读取属性'查找'的未定义
- 查找任何未定义的变量并从url字符串中隐藏
- Expressjs Mongoose 查找嵌套的嵌入式文档未定义
- 与“未定义”进行比较是否仍会进行全局范围查找
- 在对象上定义 getter,以便所有未定义的属性查找都返回 “”
- 余烬未正确初始化存储:无法读取未定义的属性“查找”
- 错误“JavaScript 运行时错误:查找滚动位置时无法获取未定义或空引用的属性'scrollLeft'”
- EmberJS无法调用方法'查找'保存模型时未定义的
- 无法调用方法'查找'的未定义
- 在关联数组查找中未定义
- 在ReferenceError中查找未定义的变量名称字符串
- 是否可以使用jQuery来查找高度未定义的文本跨度的高度
- 查找并更改未定义值的属性
- DOM查找ID返回未定义
- 为什么是Lodash _.查找返回未定义的方法
- 在chrome中查找具有未定义值的元素
- Angular Undercore无法读取属性'查找'的未定义