2013-11-15 49 views
1

) 我有一個呈現Ajax答案到視圖的麻煩。AngularJs。通過ajax加載的數據沒有顯示在視圖

還有就是我查看

<div id="content" layout:fragment="content" ng-app="Messages"> 
    <div class="twitter" ng-repeat="tweet in tweets" ng-model="tweets"> 
       <span> <input type="checkbox" name="active" 
        ng-checked="isSelected($event)" class="publishCheckbox" 
        data-id="{{tweet.socialId}}" ng-controller="publishController" 
        ng-click="publishMessage($event)" /></span> <span>{{tweet.createdAt}}</span> 
       <span>{{tweet.network}}</span> <span>{{tweet.text}}</span> 
      </div> 
      <button type="button" 
       class="btn btn-default navbar-btn twitter-posts" 
       ng-controller="getMoreTweets" ng-click="onloadTweets($event)">Get 
       more tweets</button></div> 

這是我的控制器

var app = angular.module("Messages", []); 
app.controller('getMoreTweets', function($http, $scope, $element) { 
    $scope.tweets = []; 
    $scope.onloadTweets = function(e) { 
     var buttonElement = angular.element(e.target); 
     var socialId = buttonElement.prev().prev().children().children().attr(
       "data-id"); 
     var dataString = { 
      'socialId' : socialId 
     }; 
     $http({ 
      method : 'GET', 
      url : "/infoboard/getMoreTweets", 
      params : dataString 
     }).success(function(data, status, headers, config) { 
      $scope.tweets = data; 
      console.log(data); 
      console.log($scope.tweets); 
      console.log("All correct"); 
     }).error(function(data, status, headers, config) { 
      console.log("Something went wrong"); 
     }); 
    }; 
    $scope.isSelected = function(e) { 
     return $scope.selected.indexOf(angular.element(e.target)) >= 0; 
    }; 
}); 

數據來自服務器所應當,但不能渲染到視圖( 什麼,我做錯了什麼?

+0

是否有在控制檯中的任何錯誤消息?在plnkr.co或jsfiddle上的例子會有所幫助。此外,你不需要在div上的ng-model =「tweets」,所以應該刪除那個位。 – mikel

+0

早安) 不,沒有人在控制檯輸出錯誤信息(怎麼樣...我試圖效仿的情況。2分鐘:-) –

+0

http://jsfiddle.net/bT6sj/3/但它doesn'噸的工作,因爲服務器是本地和網址是本地主機( –

回答

3

當您在ng-repeat指令中使用推文時,推文必須存在於當前作用域中 您在控制器作用域中聲明推文,但控制ler範圍受到按鈕元素的限制。所以ng-repeat的範圍對tweets一無所知。對包裝DIV
將您的NG-控制器指令NG-重複
HTML:

<div id="content" layout:fragment="content" ng-app="Messages" ng-controller="getMoreTweets">