2017-04-20 72 views
0

這裏是我的代碼獲取數據的成功,但NG重複不顯示

服務

  function dataServices($http,$stateParams){ 
        var services ={ 
         getCate:getCate 
         }; 
       return services 
} 

    function getCate(){ 
         return $http({ 
          method:'GET', 
          url:'/saha/src/server/action/getcate.php?id=' +$stateParams.id, 
          data:{ 
           'id' :$stateParams.id 
          }, 
          headers : { 'Content-Type': 'application/x-www-form-urlencoded' } 

         }).then(getCateComplete) 
          .catch(function(message){ 
          exception.catcher('XHR Failed for getCate')(message) 
          }); 

          function getCateComplete(data,status,headers,config){ 
          return data.data 
          } 
        } 

控制器

function cateController(dataServices){ 
       var vm = this; 
       vm.cate = dataServices.getCate(); 
} 

這裏是我的數據中的console.log enter image description here

得到

我在html中顯示的代碼

<ul ng-repeat ="data in vm.cate"> 
    <li>{{data.masp}}</li> 
</ul> 

但沒有顯示。我的錯在哪裏?請幫助我

回答

1

這是因爲您無法直接在視圖中綁定諾言。嘗試如下。

function cateController(dataServices){ 
    var vm = this; 
    var promise = dataServices.getCate(); 
    promise.then(getCateComplete) 
      .catch(function(message){ 
       exception.catcher('XHR Failed for getCate')(message) 
      }); 

    function getCateComplete(data,status,headers,config){ 
     vm.cate = data.data; 
    } 
} 

在服務文件,

function getCate(){ 
    return $http({ 
     method:'GET', 
     url:'/saha/src/server/action/getcate.php?id=' +$stateParams.id, 
     headers : { 'Content-Type': 'application/x-www-form-urlencoded' } 
    }); 
} 
+0

感謝這麼多,它的工作完美。您能否向我解釋爲什麼我無法直接在視圖中綁定諾言 –

+1

HTTP Promise是異步的。它不會返回任何東西。我們只能成功回調數據。所以,我們在控制器文件中使用回調。 – Harish

0

嘗試data[0].masp嘗試一次,如果你能看到值,那麼你將不得不遍歷數據,因爲我認爲它是一個數組。不是你期待的實際對象。

+0

感謝幫助,但我嘗試它,而不是工作太 –