TypeError:无法读取属性' 0' null(Javascript / Angular)

时间:2015-04-22 23:09:00

标签: javascript angularjs

我在这里遇到了一个相对奇怪的错误。

在我的控制器中,我定义了一个数组。

$scope.results = [];

在ng-keyUp事件中,我触发了这个方法:

$scope.search = function() {

    MyService.findStuff($scope.myModel.searchTerms).success(function(response)     {
    $scope.results = response;
});

在第一个keyup上,搜索触发,返回我的结果,并使用结果更新DOM:

<div ng-repeat="thing in results">{{ thing.name }}</div>

一切都很完美,但仅限于第一个按键。

之后,我收到了这个错误:

TypeError: Cannot read property '0' of null

这显然会使Angular应用程序崩溃,而且我要去吃午餐。

编辑:我应该澄清,在$scope.search执行任何代码之前抛出该错误。不会触发对服务器的查询,也不会执行任何控制台日志记录。

我已将其追踪到$scope.results = response;。删除此行后,查询会反复触发,没有任何问题。我注意到,如果我尝试手动更改结果(例如,在按键上我只是执行类似$scope.results = [{ name: "Spaz" }]的操作,则它适用于初始触发但不适用于后续触发。

我疯了!什么了?!

0 个答案:

没有答案