Javascript 未使用AngularJS在主页上加载数据
我有一个简单的AngularJS应用程序,它从JSON读取数据并将其显示在页面上。我还有几个过滤器来搜索数据。现在我面临的问题是,在我实现了过滤逻辑之后,数据没有显示在页面上。它是在我将过滤纳入代码之前显示的 以下是呈现的内容: 以下是错误: angular.js:13236错误:[filter:notarray]应为数组,但收到:0 在角上。js:68 在angular.js:19280 在fn处(评估角度:14086),:4:315) 在trackByIdExpFn(angular.js:28452) 在ngRepeatAction(angular.js:28509) 在$watchCollectionAction(angular.js:16529) 范围$digest(angular.js:16664) 在范围内$apply(angular.js:16928) 完成时(angular.js:11266) 在completeRequest(angular.js:11464)(匿名函数)@angular.js:13236(匿名函数)@angular.js:9965Scope.$digest@angular.js:16682Scope.$apply@angular.js:16928done@angular.js:11266completeRequest@angular.js:11464requestLoaded@angular.js:11405 foll是我的JSON结构:Javascript 未使用AngularJS在主页上加载数据,javascript,angularjs,json,Javascript,Angularjs,Json,我有一个简单的AngularJS应用程序,它从JSON读取数据并将其显示在页面上。我还有几个过滤器来搜索数据。现在我面临的问题是,在我实现了过滤逻辑之后,数据没有显示在页面上。它是在我将过滤纳入代码之前显示的 以下是呈现的内容: 以下是错误: angular.js:13236错误:[filter:notarray]应为数组,但收到:0 在角上。js:68 在angular.js:19280 在fn处(评估角度:14086),:4:315) 在trackByIdExpFn(angular.js:
[
{
"name": "George Eliot",
"thoughts": ["thought 1", "thought 2", "thought 3"]
},
{
"name": "Nietzsche",
"thoughts": ["thought 1", "thought 2", "thought 3"]
}
]
以下是视图中我的筛选代码:
<md-input-container>
<label>Enter Search Term</label>
<input type="text" ng-model="classifiedsFilter">
</md-input-container>
<md-input-container>
<label>Select a Master</label>
<md-select ng-model="name">
<md-option ng-repeat="name in names | orderBy: 'toString()'" value="{{ name }}">
{{ name }}
</md-option>
</md-select>
</md-input-container>
<md-input-container>
<md-button class="md-warn" ng-click="classifiedsFilter = ''; name = ''">Clear</md-button>
</md-input-container>
<md-content class="md-padding" layout="row" layout-align="center" layout-wrap>
<md-card ng-repeat="classified in classifieds track by $index | filter: classifiedsFilter | filter: name" flex-xs="100" flex-gt-sm="70">
<md-card-content>
<div class="classified-info">
<h2 class="md-display-2">{{ classified.name }}</h2>
<ul>
<li ng-repeat="thought in classified.thoughts track by $index">{{ thought }}</li>
</ul>
</div>
</md-card-content>
</md-card>
</md-content>
任何帮助都将不胜感激。谢谢。我只是在探索我的代码。。我发现,当我删除
| filter:classifiedsFilter | filter:name
时,就会加载内容,并且不会出现错误。我在这里遗漏了什么?嗨,你不能在同一个元素中使用2个过滤器…你必须创建自定义过滤器。我删除了按$index分类的track
agst,数据正在加载,没有任何错误。我只是好奇为什么会这样,因为在我实现过滤逻辑之前,我必须合并track by$index
,以避免ngdups错误。
(function(){
"use strict";
angular
.module("ngClassifieds")
.controller("classifiedsCtrl", function($scope, $http, classifiedsFactory) {
classifiedsFactory.getClassifieds().then(function(mastersdata) {
$scope.classifieds = mastersdata.data;
$scope.names = getNames($scope.classifieds);
});
function getNames(classifieds) {
var names = [];
angular.forEach(classifieds, function(item) {
names.push(item.name);
});
return _.uniq(names);
}
});
})();