2015-05-14 69 views
0

我的页面上有一个角度uiGrid。它将显示数据的唯一时间是如果我在gridOptions中设置数据,而不是http成功回调。这里是代码:角度ui网格没有行

$scope.gridOptions = { 
     showfooter: false, 
     enablePaging: true, 
     paginationPageSizes: [15], 
     paginationPageSize: 50, 
     enableRowSelection: false, 
     primaryKey: 'Id', 
     multiSelect: false, 
     enableSorting: false, 
     enableVerticalScrollbar: true, 
     enableHorizontalScrollbar: true, 
     groupable: false, 
     rowHeight: 75, 
     columnDefs: 
     [ 
      { 
       field: 'Id', visible:false 
      }, 
      { 
       field: 'Name' 

      }, 
      { 
       field: 'CategoryName', 
       DisplayName: 'Category' 
      }, 
      { 
       field: 'Actions', 
       DisplayName: 'Actions', 
       cellTemplate: '<a href="#" title="Edit" ng-click="goToEditInst(row)"><span class="glyphicon glyphicon-edit"></span></a>' 
      } 
     ] 
    }; 

$scope.searchInstituions = function() { 
    var formObj = $scope.searchForm; 
    var svc = formObj.service; 
    var city = formObj.city; 
    var cat = formObj.category; 
    var params = { CategoryId: ((cat == null)?-1:cat.Id) , ServiceId: ((svc == null) ? -1 : svc.Id), Cityid: ((city == null) ? -1 : city.Id) }; 
    $http({ 
     method: 'POST', 
     url: '/getjson', 
     data: $.param(params), 
     headers: { 'Content-Type': 'application/x-www-form-urlencoded' } 
    }) 
    .success(function (data, status, headers, config) { 
     data = [{ "Id": 1, "Name": "Golden Hills School District No. 75", "CategoryName": "Schools" }]; 
     $scope.gridOptions.data = data; 
    }) 
    .error(function (data, status, headers, config) { 
     alert('Error: ' + status + ". " + data); 
    }); 
}; 

请注意,我有硬编码数据作为一个元素的数组。

这样做的HTML是:

<fieldset ng-controller="InstitutionController"> 
    <legend>Search Results:</legend> 
    <div class="gridStyle" ui-grid="gridOptions"></div> 
</fieldset> 

当$ scope.gridOptions.data设置在.success回调网格不会显示任何行。 (这是正在呼吁那些谁是要问,如果函数被调用

但被我设置网格选项,如以下将显示就好了:

$scope.gridOptions = { 
    data: [{ "Id": 1, "Name": "Golden Hills School District No. 75", "CategoryName": "Schools" }], 
    showfooter: false, 
    enablePaging: true, 
    paginationPageSizes: [15], 
    paginationPageSize: 50, 
    enableRowSelection: false, 
    primaryKey: 'Id', 
    multiSelect: false, 
    enableSorting: false, 
    enableVerticalScrollbar: true, 
    enableHorizontalScrollbar: true, 
    groupable: false, 
    rowHeight: 75, 
    columnDefs: 
    [ 
     { 
      field: 'Id', visible:false 
     }, 
     { 
      field: 'Name' 

     }, 
     { 
      field: 'CategoryName', 
      DisplayName: 'Category' 
     }, 
     { 
      field: 'Actions', 
      DisplayName: 'Actions', 
      cellTemplate: '<a href="#" title="Edit" ng-click="goToEditInst(row)"><span class="glyphicon glyphicon-edit"></span></a>' 
     } 
    ] 
}; 

缺少什么我在这里! !

+0

。示例http://plnkr.co/edit/Kd0To1g9ra9DvsIOGBeM?p=preview做了完全相同的事情,它的工作原理 – Kathir

+0

ui-grid - v3.0.0-RC.18-d9b2314 - 2015-01-06 我检查了例。这在早些时候工作。我有另一个网格做同样的事情,它的工作原理。我不知道为什么这是一个不幸的事情。我查了法术,什么都没有。它不会给出任何错误,但不会显示任何行 – ASR

回答

0

固定它!

的问题是下面的HTML:

<form ng-submit="searchInstituions()" ng-controller="InstitutionController"> 
    .... 
</form> 
<fieldset ng-controller="InstitutionController"> 
     <legend>Search Results:</legend> 
     <div class="gridStyle" ui-grid="gridOptions"></div> 
</fieldset> 

请注意,有两个元素窗体和fieldset属性ng控制器。我猜这两个$范围是不一样的。 只要我改变了以上,它开始工作正常。教训:

<form ng-submit="searchInstituions()" ng-controller="InstitutionController"> 
    ... 

    <div class="clear" style="margin-top: 50px;"></div> 
    <fieldset> 
     <legend>Search Results:</legend> 
     <div class="gridStyle" ui-grid="gridOptions"></div> 
     </fieldset> 
</form> 

您正在使用哪个UI电网的版本谢谢您的帮助

+0

您的问题没有正确的html,因此其他人很难弄清楚这一点。 – Kathir

+0

我同意。对于那个很抱歉。没有想到这一点 – ASR