Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.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数据绑定不动态更新内容_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS数据绑定不动态更新内容

Javascript AngularJS数据绑定不动态更新内容,javascript,angularjs,Javascript,Angularjs,我正在尝试从Google books API检索数据-https://www.googleapis.com/books/v1/volumes 这是plnkr链接-https://plnkr.co/edit/K4f7CVIeurAUMRzQYMb0?p=preview 我在搜索文本中输入ISBN号(比如:1234),然后用我从谷歌收到的回复项更新书单 我试图使用ng repeat对这些书籍进行迭代,但它没有更新。 我需要单击搜索两次才能在ng repeat中查看结果 我很困惑为什么它不动态更新内容

我正在尝试从Google books API检索数据-
https://www.googleapis.com/books/v1/volumes

这是plnkr链接-
https://plnkr.co/edit/K4f7CVIeurAUMRzQYMb0?p=preview

我在搜索文本中输入ISBN号(比如:1234),然后用我从谷歌收到的回复项更新书单

我试图使用
ng repeat
对这些书籍进行迭代,但它没有更新。 我需要单击搜索两次才能在
ng repeat
中查看结果

我很困惑为什么它不动态更新内容

请参阅plnkr链接

在搜索文本中输入1234,然后单击搜索,不会在html中更新

再次单击“搜索”,它将用最后一个响应更新html


谢谢。

您正在使用jQuery拨打电话,在$digest之外。你应该改用服务

$http({
  url: "https://www.googleapis.com/books/v1/volumes",
  method: 'GET',
  params: {q:first.inputISBN}
});

您不应该使用$.ajax(),而应该使用$http,基本上您的方法是错误的。此外,ng repeat应该在li元素上,而不是ulOk元素上,是的,我会这样做。但是你知道为什么它不更新吗?你可以这样使用$http:
$http.get(url)。然后(函数(response){first.books=response.data;},函数(error){console.log(error)}
。这样,当范围被评估并且在http承诺被解析后,你的中继器将更新结果。然后你的li应该是
  • =“book in first.books”>
  • Hi,这很有效。但我还是不明白这里不使用$.ajax方法的意义。嗨,谢谢你的回答。你能详细说明一下你关于Angular$digest的声明吗?或者提供任何链接来阅读它。Angular需要处于$digest阶段才能看到它(在本例中是一组书籍)更改。许多事情触发$digest循环,如$http响应、ngClick、$timeout等。您也可以使用$scope方法手动触发它:$apply、$eval、$evalAsync。然后,也只有到那时angular才会开始脏检查并对更改作出反应。谢谢,这现在是有意义的。