从数据库检索数据后,Angular View不更新

剧院数据分析员

我目前正在开发一个应用,该应用可检索有关$ routeParams更改的数据。所以这是开始的方式:

function artistCtrl($scope, $http, $location, dataFactory, $routeParams){
$scope.artistName = $routeParams.artistname

$scope.$watch('artistName', function(newValue, oldValue){
  $scope.artistInfo = dataFactory.getArtist(newValue)
})

$scope.artistInfo = {
  artist_name: dataFactory.artistInfo.artist_name,
  artist_genre: dataFactory.artistInfo.artist_genre,
  artist_imageurl: dataFactory.artistInfo.artist_imageurl,
  artist_bio: dataFactory.artistInfo.artist_bio
};
}

$watch运行此处的回调从我的数据库中dataFactory.getArtist检索newValue成功完成的数据库。这样做是这样的:

dataFactory.js

  dataFactory.getArtist = function(artist){   
    return dataFactory.checkDb(artist).then(function(dbData){
      if(dbData.data != "No data"){
          dataFactory.artistInfo = dbData.data[0] 
      } 
      return dbData.data[0]
    })
  }

dataFactory.artistInfo = "";

dataFactory 是我在另一个文件中创建的工厂。

artistpage.html

<div class="container this">
      <div class="row">
        <div class="col-sm-6">
          <div><h1>{{artistInfo.artist_name}}</h1></div>
          <div rate-yo id='stars' rating="myRating" class="col-sm-4"></div>
          <div id='reviews'>23 Reviews</div>
          <div><h2>{{artistInfo.artist_genre}}</h2></div>
          <div><p>{{artistInfo.artist_bio}}</p></div>
          <div><button type="button" class="btn btn-primary" ng-click="somefunc()">Submit a Review</button></div>
        </div>
        <div class="col-sm-6 reviews">
          <div><img class="artistpageimage" src={{artistInfo.artist_imageurl}}></div>
        </div>
      </div>

</div>

我不明白为什么我的观点没有得到更新。我正在尝试通过分配返回值dataFactory.getArtist(newValue)以及通过将新数据分配给dataFactory.artistInfo我已阅读的有关$ apply的方式来更新$ scope.artistName ,但是我很难弄清楚如何在这种情况下应用它。有人可以帮忙吗?

甘菊

getArtist是否返回承诺或值。如果可以保证,请尝试以下操作:

$scope.$watch('artistName', function(newValue, oldValue){
  dataFactory.getArtist(newValue).then(function(value) {
    $scope.artistInfo = value;
  })
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

数据库插入后Listview不更新

来自分类Dev

数据库更新不丢失数据

来自分类Dev

从数据库中检索已更新的数据

来自分类Dev

插入新数据后,Firebase 数据库参考不返回更新的数据快照

来自分类Dev

拖放操作后更新数据库

来自分类Dev

交易后如何更新数据库?

来自分类Dev

更新数据库不创建数据库

来自分类Dev

更新数据库更新后显示的数据

来自分类Dev

SQL查询不更新数据库

来自分类Dev

PHP的形式不更新数据库

来自分类Dev

Laravel函数不更新数据库

来自分类Dev

ExecuteNonQuery() 不更新数据库

来自分类Dev

PHP ajax不更新数据库

来自分类Dev

Mysql不更新数据库

来自分类Dev

SaveChangesAsync() 不更新数据库

来自分类Dev

DbContext 不更新数据库

来自分类Dev

编辑不更新数据库

来自分类Dev

从数据库中检索字段而不模拟它们?

来自分类Dev

插入数据库Web服务后更新数据

来自分类Dev

Android-在数据库更新后保留数据

来自分类Dev

Laravel:编辑数据后更新数据库时出错

来自分类Dev

更新数据库中的记录后,Angular 2视图未更新

来自分类Dev

更新数据库中的记录后,Angular 2视图未更新

来自分类Dev

sql更新不更改数据库中的数据

来自分类Dev

从数据库渲染复选框,然后在修改后更新数据库

来自分类Dev

会话过期后如何自动更新数据库而不刷新我的页面

来自分类Dev

插入数据库后AngularJS ng-repeat不更新

来自分类Dev

数据库更新后更新片段TextView

来自分类Dev

更新数据库后如何更新ListView?