2016-09-23 36 views
0

我正在爲移動應用程序使用angularJS + cordova。我能夠顯示列表視圖,因爲我試圖更新列表項,當我點擊該項目時,值正在改變,但用戶界面沒有更新。 這是我的代碼。AngualrJS範圍變量正在更新,但不是UI

<md-list post class="" role="list" > 
     <md-item class="card" ng-repeat="post in posts"> 
      <div class="card-header"> 
       <div class="pro-pic"> 
        <img src="{{post.UserImage}}" /> 
       </div> 
       <h2>{{ post.UserName }} 
        <span>{{ post.CreatedDate | date:'medium' }} via --</span> 
       </h2> 
       <div class="post-info">{{ post.Description }}</div> 
      </div> 

      <div class="card-body"> 
       <div class="card-img" ng-hide="post.IdeaImagePost == 0"> 
        <img src="{{ post.IdeaImagePost }}" /> 
       </div> 
      </div> 

      <div class="card-footer"> 
       <div id="likeID" ng-click="onLike(post)"><i class="fa fa-thumbs-up {{post.LikeUserStatus ? 'active' : ''}}"></i><label>&nbsp;Like</label><span class="badge badge-xs badge-pink">{{ post.LikeUsersCount }}</span></div> 
       <div><i class="fa fa-commenting"></i>&nbsp;Comment<span class="badge badge-xs badge-pink">{{ post.CommentsCount }}</span></div> 
      </div> 
     </md-item> 
    </md-list> 

查看更多

這裏是JS代碼

$scope.onLike = function(post) { 
    console.log("LikeUserStatus: " + post.LikeUserStatus); 
    post.LikeUserStatus = !post.LikeUserStatus; 
    post.LikeUsersCount = post.LikeUserStatus ? parseInt(post.LikeUsersCount)+1 : parseInt(post.LikeUsersCount)-1; 

    console.log("LikeUserStatus: " + post.LikeUserStatus); 
}; 
+0

你在哪裏看到值發生了變化? – ni3aj

+0

我可以打印控制檯日誌 – Avinash

回答

0

console.log("LikeUserStatus: " + post.LikeUserStatus); 
 
` $timeout(function(){ 
 
    post.LikeUserStatus = !post.LikeUserStatus; 
 
    post.LikeUsersCount = post.LikeUserStatus ? parseInt(post.LikeUsersCount)+1 :parseInt(post.LikeUsersCount)-1   
 
})`;

$ timeou t執行後運行摘要週期

+0

感謝您的回覆。這是行不通的,我在手機上面臨這個問題。當我打開移動設備時,代碼按照預期的方式工作在屏幕上顯示的列表項目中。當我向下滾動查看下一個列表項目時代碼無法工作。 – Avinash

+0

好吧,然後我沒有解決方案,將不得不深入瞭解它 – AbhiGoel

相關問題