在异步服务调用之后,ngHandsontable datarow未定义

时间:2015-10-17 15:12:23

标签: javascript angularjs handsontable

我有一个简单的控制器,它调用ajax来获取ngHandsontable的表数据,但lib.quotedFormOf(s)值为datarows

undefined

var app = angular.module('propnet', [ 'ngRoute', 'ngHandsontable' ]); // configure our routes app.config(function($routeProvider) { $routeProvider. // route for the about page when('/property/:prop_id', { templateUrl: 'pages/property.html', controller: 'propertyController' }) ... app.controller('propertyController', function($scope, $routeParams, $http, $log) { $http.get('api/Transactions/property/' + $routeParams.prop_id).success(function(data) { $scope.transactions = data; $log.log("Got some txns" + data); }); });

pages/property.html

<div class="row">{{ transactions }}</div> <div class='row'> <hot-table col-headers="showColHeaders" datarows="transactions"> <hot-column data="itemName" title="'Name'" type="'text'" read-only></hot-column> <hot-column data="amount" title="'Amount'" type="'numeric'" format="'$ 0,0.00'" read-only></hot-column> <hot-column data="date" title="'Date'" type="'date'" dateFormat="'YYYY-MM-DD'"></hot-column> <hot-column data="vendorName" title="'Vendor'"></hot-column> <hot-column data="notes" title="'Notes'" width="150" ></hot-column> </hot-table> </div> 打印从服务调用返回的值,但{{ transactions }}为空,ngHandsontable抛出错误(多次):

<hot-table>

为什么Got some txns[object Object],[object Object],[object Object],[object Object] angular.js:12477 TypeError: Cannot read property 'length' of undefined at Object.fn (ngHandsontable.js:253) at Scope.$digest (angular.js:15826) at Scope.$apply (angular.js:16097) at done (angular.js:10546) at completeRequest (angular.js:10744) at XMLHttpRequest.requestLoaded (angular.js:10685)(anonymous function) @ angular.js:12477(anonymous function) @ angular.js:9246Scope.$digest @ angular.js:15844Scope.$apply @ angular.js:16097done @ angular.js:10546completeRequest @ angular.js:10744requestLoaded @ angular.js:10685 没有绑定到$scope.transactions

相关:ngHandsontable shows no content on rest service call

1 个答案:

答案 0 :(得分:1)

在控制器中初始化$ scope.transactions = []。最初当handsontable尝试绑定数据时,$ scope.transactions是未定义的。因此,通过初始化它首先有助于传递错误。一旦GET方法返回数据,handontable将用数据填充表。