gpt4 book ai didi

javascript - Angular 模块 md-data-table 服务

转载 作者:行者123 更新时间:2023-12-03 04:49:28 24 4
gpt4 key购买 nike

在 Angular 模块“md-data-table”的自述文件中,它说“假设我们有一个 $nutrition 服务”。我尝试添加一个服务(makerService),并返回数据。但我看不到屏幕上显示的数据。我尝试了不同的 JSON 格式,但出现错误:

$makerService.makers.get is not a function

这是我的 JavaScript 代码:

(function() {

'use strict';

angular.module('BowbleCRM', [
'ngMaterial',
'md.data.table'
])
.service('$makerService', function () {
var makers = {
"makers" : [
{"full_name": "Jan", "email": "jan@test.nl"},
{"full_name": "Pieter", "email": "pieter@test.nl"}
]
};
return makers;
})
.controller('BowbleCRMController', ['$makerService', '$scope', BowbleCRMController]);

function BowbleCRMController($makerService, $scope) {
'use strict';

$scope.currentNav = 'importeren';
$scope.selected = [];

$scope.query = {
order: 'full_name',
limit: 5,
page: 1
};

function success(makers) {
console.log(makers);

$scope.makers = makers;
}
$scope.getMakers = function () {
$scope.promise = $makerService.makers.get($scope.query, success).$promise;
};
}

})();

这是我的 HTML 的一部分。

<md-toolbar class="md-table-toolbar md-default">
<div class="md-toolbar-tools">
<span>Alle makers</span>
</div>
</md-toolbar>
<!-- exact table from live demo -->
<md-table-container>
<table md-table md-row-select multiple ng-model="selected" md-progress="promise">
<thead md-head md-order="query.order" md-on-reorder="getMakers">
<tr md-row>
<th md-column><span>Volledige naam</span></th>
<th md-column><span>E-Mail adres</span></th>
</tr>
</thead>
<tbody md-body>
<tr md-row md-select="maker" md-select-id="full_name" md-auto-select ng-repeat="maker in makers.data">
<td md-cell>{{maker.full_name}}</td>
<td md-cell>{{maker.email}}</td>
</tr>
</tbody>
</table>
</md-table-container>
<md-table-pagination md-limit="query.limit" md-limit-options="[5, 10, 15]" md-page="query.page" md-total="{{makers.length}}" md-on-paginate="getMakers" md-page-select></md-table-pagination>

如何提供正确的服务,并使用 Angular 模块“md-data-table”显示数据?

最佳答案

您在 $makerService 上没有函数 get,您只是返回 makers,它是一个对象。

如果您想调用 get Promise,则必须在 makerService 上实现它。类似的东西

 .service('$makerService', function () {
var makers = {
"makers" : [
{"full_name": "Jan", "email": "jan@test.nl"},
{"full_name": "Pieter", "email": "pieter@test.nl"}
]
};

function get(params){
//..implement your logic here (for your controller code, this should return a promise)
}
return {
makers: makers,
get: get
};
})

在你的 Controller 中你可以这样调用它:

$scope.getMakers = function () {
$scope.promise = $makerService.get($scope.query, success).$promise;
};

关于javascript - Angular 模块 md-data-table 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42721761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com