2017-02-22 64 views
0

我想關注使用ng-Table的教程Here。如果我從Git下載整個示例,那麼它會正常加載,但即使是最簡單的示例,我自己也會試着加載列頭和過濾器,但是沒有行?如果我手動在HTML中添加另一行,它確實會出現,所以問題似乎是數據綁定或ng-repeat。控制檯中沒有顯示錯誤。angularjs ng-table/ng-rows rows not loading

enter image description here

示例代碼:

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <meta charset="utf-8" /> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-resource.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-route.js"></script> 
    <link rel="stylesheet" ; href="https://unpkg.com/[email protected]/bundles/ng-table.css"> 
    <script src="https://unpkg.com/[email protected]/bundles/ng-table.js"></script> 
</head> 
<body> 

    <div ng-app="MyApp" ng-controller="MyCtrl"> 

     <table ng-table="vm.tableParams" class="table" show-filter="true"> 
      <tr ng-repeat="user in $data"> 
       <td title="'Name'" filter="{ name: 'text'}" sortable="'name'"> 
        {{user.name}} 
       </td> 
       <td title="'Age'" filter="{ age: 'number'}" sortable="'age'"> 
        {{user.age}} 
       </td> 
      </tr> 
     </table> 
    </div> 


    <script> 
     var app = angular.module("MyApp", ["ngTable"]); 

     app.controller('MyCtrl', function ($scope, NgTableParams) { 
      var self = this; 
      var data = [{ name: "Moroni", age: 50 } /*,*/]; 
      self.tableParams = new NgTableParams({}, { dataset: data }); 
     }); 

    </script> 
</body> 
</html> 

回答

1

你的避風港」的指定您的控制器參考。

將代碼更改爲<div ng-app="MyApp" ng-controller="MyCtrl as vm">,它將按照您的預期工作。

工作例如:http://codepen.io/DeividasK/pen/qrWqey?editors=1010

+0

謝謝,該作品:) –

+0

很高興聽到。確保將問題標記爲已回答,以便其他人節省時間;) –

0

你沒有在指定範圍內的對象

試試這個下面的代碼,而不是你的代碼

app.controller('MyCtrl', function ($scope, NgTableParams) { 
     var self = this; 
     self.data = [{ name: "Moroni", age: 50 } /*,*/]; 
     self.tableParams = new NgTableParams({}, { dataset: self.data }); 
    }); 
+0

感謝您的回覆,我換了你的代碼,但結果是一樣的。 –

+0

@JoshuaCook哎呀!你也需要改變這一行'ng-table =「vm.tableParams」'到'ng-table =「tableParams」' –

+0

嗨,我試過這個,但有點不起作用?然而改變'ng控制器=「MyCtrl」'爲'ng控制器=「MyCtrl爲vm」'按預期工作:) –

0

這是NG表,問題是你正在使用的控制器虛擬機,只是刪除虛擬機或把控制器作爲虛擬機和它的工作。

<table ng-table="tableParams" class="table" show-filter="true"> 
      <tr ng-repeat="user in $data"> 
       <td title="'Name'" filter="{ name: 'text'}" sortable="'name'"> 
        {{user.name}} 
       </td> 
       <td title="'Age'" filter="{ age: 'number'}" sortable="'age'"> 
        {{user.age}} 
       </td> 
      </tr> 
     </table>