5

我尝试制作自定义模板listView,例如:

import listTemplate from '../templates/listTemplate.html';

var users = admin.getEntity('users');
  users
    .listView()
    .template(listTemplate)
    .actions([])
    .title('All users')
    .perPage(10)
    .fields([
      nga.field('email'),
      nga.field('name')
    ])
    .filters([
       nga.field('filter', 'template')
         .label('')
         .pinned(true)
         .defaultValue('')
         .template('<div class="input-group"><input type="text" ng-model="value" placeholder="Search..." class="form-control"></input><span class="input-group-addon"><i class="glyphicon glyphicon-search"></i></span></div>')
    ])
    .listActions(['edit', 'show']);

和 listTemplate.html 模板,我从 ng-admin 的源代码中复制:

<div class="row list-view" ng-class="::'ng-admin-entity-' + listController.entity.name()">
    <div class="col-lg-12">
        <ma-datagrid name="{{ ::listController.view.name() }}"
                  entries="listController.dataStore.getEntries(listController.entity.uniqueId)"
                  selection="selection"
                  fields="::listController.fields"
                  list-actions="::listController.listActions"
                  entity="::listController.entity"
                  datastore="listController.dataStore">
        </ma-datagrid>
    </div>
</div>

<div class="row" ng-if="::!listController.infinitePagination">
    <div class="col-lg-12">
        <ma-datagrid-pagination
            page="{{ listController.page }}"
            per-page="{{ ::listController.view.perPage() }}"
            total-items="{{ listController.totalItems }}"
            set-page="::listController.setPageCallback">
        </ma-datagrid-pagination>
    </div>
</div>

<ma-datagrid-infinite-pagination ng-if="::listController.infinitePagination"
            per-page="{{ ::listController.view.perPage() }}"
            total-items="{{ ::listController.totalItems }}"
            next-page="::listController.nextPageCallback">
</ma-datagrid-infinite-pagination>

但是当我在浏览器上打开时它只显示空列表,因为自定义 listView 模板无法获取 listController 实例。谁能帮我 ?

4

1 回答 1

3

您应该改为复制listLayout.html模板:

<div class="row list-header">
    <div class="col-lg-12">
        <div class="page-header">

            <ma-view-actions override="::llCtrl.actions" selection="selection" batch-buttons="::llCtrl.batchActions" entity="::llCtrl.entity" datastore="::llCtrl.dataStore" search="::llCtrl.search" filters="::llCtrl.filters" enabled-filters="llCtrl.enabledFilters" enable-filter="llCtrl.enableFilter">
                <ma-filter-button filters="filters()" enabled-filters="enabledFilters" enable-filter="enableFilter()"></ma-filter-button>
                <ma-view-batch-actions buttons="::batchButtons()" selection="selection" entity="::entity"></ma-view-batch-actions>
                <ma-export-to-csv-button entity="::entity" search="::search" datastore="::datastore"></ma-export-to-csv-button>
                <ma-create-button ng-if="::entity.creationView().enabled" entity="::entity"></ma-create-button>
            </ma-view-actions>

            <h1 compile="::llCtrl.view.title()">
                {{ ::llCtrl.view.entity.name() | humanize | pluralize }} list
            </h1>
            <p class="lead" ng-if="::llCtrl.view.description()" compile="::llCtrl.view.description()">{{ ::llCtrl.view.description() }}</p>
        </div>

        <ma-filter-form ng-if="llCtrl.hasFilters" filters="llCtrl.enabledFilters" values="llCtrl.search" datastore="::llCtrl.dataStore" remove-filter="::llCtrl.removeFilter"></ma-filter-form>

    </div>
</div>

<div ui-view="grid"></div>
于 2015-12-04T10:22:12.023 回答