Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS-ng重复和;筛选器比较器与查询字符串值不完全匹配?_Javascript_Json_Angularjs_Angularjs Ng Repeat_Angularjs Filter - Fatal编程技术网

Javascript AngularJS-ng重复和;筛选器比较器与查询字符串值不完全匹配?

Javascript AngularJS-ng重复和;筛选器比较器与查询字符串值不完全匹配?,javascript,json,angularjs,angularjs-ng-repeat,angularjs-filter,Javascript,Json,Angularjs,Angularjs Ng Repeat,Angularjs Filter,我有几个遵循简单查询字符串模式的动态页面: "...com/directory/my-post-title?id=#" 其中,哈希是JSON文件中定义的数字,在创建时分配 路由等方面没有问题,我已经成功地将它与ng repeat结合使用,在精确匹配比较器不存在时检索数据,但由于某些原因,它在应用时无法按预期工作 在下面的设置中,我使用过滤器中的函数从url中提取查询字符串,然后使用该字符串设置过滤器。这不起作用的原因是什么 模板: <div data-ng-repeat="item in

我有几个遵循简单查询字符串模式的动态页面:

"...com/directory/my-post-title?id=#"
其中,哈希是JSON文件中定义的数字,在创建时分配

路由等方面没有问题,我已经成功地将它与ng repeat结合使用,在精确匹配比较器不存在时检索数据,但由于某些原因,它在应用时无法按预期工作

在下面的设置中,我使用过滤器中的函数从url中提取查询字符串,然后使用该字符串设置过滤器。这不起作用的原因是什么

模板:

<div data-ng-repeat="item in items | filter:{itemID:queryID}:true | limitTo:'1'">
   {{::item.name}}
</div> 
JSON:


首先,为什么不先从服务器进行筛选?第二,似乎在这里工作-您在控制台中有任何错误吗?使用函数而不是静态变量是个坏主意,而且效率不高Hanks@OmriAharon,我这边没有错误。你的提琴似乎能工作,因为你返回的是一个静态值——也只是在我的应用程序中验证过。问题似乎在于查询的拉取,以及“何时”将其实际推送到对象中。关于服务器过滤,目前我正在开发的应用程序没有后端,只有一个包含伪数据的JSON文件。最终,它将拥有带有webhook的Rails,因此所有内容最终都将被写入JSON。如果有更好的结构方式,我很想听听你的想法。@charlietfl在这个用例中,为了提高效率,你的想法是什么?可以使用routeChange事件来更新控制器中的变量或查看此手表概念
angular.module('myApp').controller('mainCtrl', ['$rootScope', '$scope', '$location', function($rootScope, $scope, $location) {
   $rootScope.$on('$routeChangeSuccess', function(event, current, previous) {
      $scope.queryID = $location.search().id;
   });
}]);
{
"myItems": [
    {
      "itemID": 1,
      "name": "some name"
   },
   {
      "itemID": 11,
      "name": "another name"
   }
]
}