Javascript 如何使用json对象显示angularjs ng repeat

Javascript 如何使用json对象显示angularjs ng repeat,javascript,php,json,angularjs,Javascript,Php,Json,Angularjs,我正在尝试使用AngularJS搜索产品结果。我已经获得了一个JSON对象及其结果:下面的示例 [{"store_id":"17","user_id":"29","company_name":"Liquor R Us","company_type":"Alcohol", "phone":"(303) 555-5555","website":"http:\/\/liqourrus.com","address":"5501 Peoria St", "address_2":"","city":"Den

我正在尝试使用AngularJS搜索产品结果。我已经获得了一个JSON对象及其结果:下面的示例

[{"store_id":"17","user_id":"29","company_name":"Liquor R Us","company_type":"Alcohol",
"phone":"(303) 555-5555","website":"http:\/\/liqourrus.com","address":"5501 Peoria St",
"address_2":"","city":"Denver","state":"CO","zip":"80239","lat":"39.796181",
"lng":"-104.84863","mon_open":"","mon_close":"","tues_open":"","tues_close":"",
"wed_open":"","wed_close":"","thurs_open":"","thurs_close":"","fri_open":"","fri_close":"",
"sat_open":"","sat_close":"","sun_open":"","sun_close":"","distance":"1.1668156112981596",
"s":"s","st":"Every Store"}]
我使用的是
ng repeat=“storein storeResult”
,只有单击我的筛选功能,结果才会显示,请注意,筛选没有应用

<div class="product" ng-repeat="store in storeResult">
    {{store.company_name}}
</div>
如果我点击“设置过滤器”按钮,所有结果都会显示出来。我正试图弄清楚如何在不点击按钮的情况下显示它

这种变通方法只适用于Chrome.Firefox和IE,从不显示结果


Plunker:

我的最佳嘉宾是,通过单击
设置过滤器
按钮,您正在触发摘要周期,您的
ngRepeat
将因此被执行。我怀疑您将
storeResult
分配到摘要周期之外,这就是最初未显示的原因。我无法确定b您的描述中没有提到如何将JSON分配给storeAssignment

你能检查一下这个变量是如何分配的吗

你能改变它的方式并这样做吗:

$timeout(function() {
    $scope.storeAssignment = _your_json_value;
}); 
您必须包含
$timeout
依赖项,但这样一来,storeAssignment中的更改将在您的摘要周期内,并且ngRepeat将看到该更改


希望能有所帮助。

我的最佳嘉宾是,通过单击
setFilter
按钮,您正在触发一个摘要周期,您的
ngRepeat
将因此被执行。我怀疑您将
storeResult
分配到摘要周期之外,这就是最初未显示的原因。我无法告诉您r当然,因为您的描述中没有JSON是如何分配给storeAssignment的

你能检查一下这个变量是如何分配的吗

你能改变它的方式并这样做吗:

$timeout(function() {
    $scope.storeAssignment = _your_json_value;
}); 
您必须包含
$timeout
依赖项,但这样一来,storeAssignment中的更改将在您的摘要周期内,并且ngRepeat将看到该更改


希望这会有所帮助。

在单击筛选函数之前,您似乎不会将筛选设置为“全部”。请确保
filter
以“全部”开头。

在单击筛选函数之前,您似乎不会将筛选设置为“全部”。请确保
filter
以“全部”开头。

您能否提供以下信息使用plunker/jsfiddle?我遗漏了什么吗?请您使用或提供相关的问题代码本身。为了演示问题,请在plunker、jsfiddle.net、jsbin.com等沙箱中提供一个简单的演示,而不是指向您的实时版本的链接,在那里没有人可以测试您的应用程序code@charlietfl-您可以在其环境中测试代码。您可以检查所有需要查看的代码。这个问题甚至没有意义。我只是试图用NG-REPEAT显示JSON对象,但它没有显示。您能提供可用的plunker/JSFIDLE吗?我缺少什么吗?请您使用或提供有问题的相关代码。为了演示problem pro在plunker、jsfiddle.net、jsbin.com等沙箱中提供一个简单的演示,而不是指向您的实时版本的链接,在那里没有人可以测试您的应用程序code@charlietfl-你可以在它的环境中测试代码。你可以检查所有需要查看的代码。这个问题根本没有意义。我只是想显示一个带有NG的JSON对象-重复,它不会显示。storeResult的值是通过ajax请求提取的,作为“setSearch”函数的一部分,但我无法在plunker中运行它,所以我只输入字符串值。字符串值也不会显示。我已经这样做:$timeout(function(){$scope.AlgolResult=AlgolResult;$scope.mjResult=mjResult;$scope.storeResult=storeResult;});我的结果显示了。谢谢!这正是我所怀疑的,在您的ajax响应之后,有一个很大的变化,变量被分配到摘要周期之外。您能试试我的解决方案吗?在分配时添加$timeout代码。这应该可以解决问题(你也可以使用$scope.apply,但我更喜欢$timeout,因为如果已经在摘要周期中,你可能会在使用apply时遇到错误。我还不能投票,或者我会。我发现如果我使用angular http而不是ajax调用,摘要不会提前完成,数据显示也不需要超时调用。我为此花了2天时间,非常感谢你。)uch!storeResult的值是通过ajax请求提取的,作为“setSearch”函数的一部分,但我无法在plunker中运行该函数,所以我只输入字符串值。该字符串值也不会显示。我已经这样做了:$timeout(function(){$scope.ololcoolresult=olcoolresult;$scope.mjResult=mjResult;$scope.storeResult=storeResult;});我的结果显示了。谢谢!这正是我所怀疑的,在您的ajax响应之后,有一个很大的变化,变量被分配到摘要周期之外。您能试试我的解决方案吗?在分配时添加$timeout代码。这应该可以解决问题(你也可以使用$scope.apply,但我更喜欢$timeout,因为如果已经在摘要周期中,你可能会在使用apply时遇到错误。我还不能投票,或者我会。我发现如果我使用angular http而不是ajax调用,摘要不会提前完成,数据显示也不需要超时调用。我为此花了2天时间,非常感谢你。)啊!