我尝试在远程数据上使用smart Tabl e,但我没有得到任何输出。我一直在阅读文档中关于ajax数据应该使用stSafeSrc属性,但显然我做错了。
我的标记看起来如下
<div class="content">
<div class="container">
{% verbatim %}
{{ rowCollection }}
<button type="button" ng-click="addRandomItem(row)" class="btn btn-sm btn-success">
<i class="glyphicon glyphicon-plus"></i> Add Feed
</button>
<table st-table="displayedCollection" st-safe-src="rowCollection" class="table table-striped">
<thead>
<tr>
<th>Feed Name</th>
<th>parsed Items</th>
<th>Feed Link</th>
<th>Feed Type</th>
<th>Import</th>
<th>Categorize</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="row in displayedCollection">
<td>{{row.feed_type}}</td>
<td>{{ row.id }}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
{% endverbatim %}
</div>
</div>
控制器
october.controllers['dashboard/feeds'] = function ($scope, $filter , $request) {
$.request('onFeeds', {success: function(data, scope){
this.success(data).done(function() {
$scope.rowCollection = [];
$scope.rowCollection = angular.fromJson(data.result);
$scope.displayedCollection = [].concat($scope.rowCollection);
console.log($scope.rowCollection); // Array of Objects is present
});
}
});
}
答案 0 :(得分:2)
从表面上看,你正在使用这个
https://github.com/responsiv/angular-plugin
您的控制器代码错误。您正在调用$.request()
而不是$request()
,这是$request
服务实际代理http请求的内容。这就是它似乎有效的原因。但是你实际上并没有通过他们的服务提出http请求 - 这将是有角度的 - 你通过他们使用的第三方库在角度之外做出来。
您需要将控制器更改为以下内容:
october.controllers['dashboard/feeds'] = function ($scope, $filter , $request) {
$request('onFeeds', {success: function(data, scope){
this.success(data).done(function() {
$scope.rowCollection = [];
$scope.rowCollection = angular.fromJson(data.result);
$scope.displayedCollection = [].concat($scope.rowCollection);
console.log($scope.rowCollection); // Array of Objects is present
});
}
});
}
然后他们的$request
服务会调用$rootScope.$apply()
- 请参阅第110行
https://github.com/responsiv/angular-plugin/blob/master/assets/js/angular-bridge.js