ag-grid не заполняется внутри функции?

Я новичок в использовании agGrid, простите меня, если вы найдете что-то глупое. Итак, до этого я использовал Kendo Grid на angularjs, но мы решили переключиться на какую-то другую сетку, поэтому сейчас пробуем agGrid.

Ниже приведен образец аггрида, который работает нормально, и все работает. Но когда я перемещаю параметры сетки внутри функции, которая будет вызываться при нажатии кнопки, я получаю ПРЕДУПРЕЖДЕНИЕ: параметры сетки для ag-Grid не найдены. Убедитесь, что атрибут ag-grid указывает на допустимый объект в области.

Я не могу понять, в чем проблема, потому что внутри этой функции параметры сетки кендо работают нормально, и сетка кендо заполняется, но я не уверен, что я делаю неправильно с agGrid.

Пожалуйста, помогите мне.

function abc($rootScope,$scope, $state, $stateParams, $timeout, Upload, baseURL, $cookieStore, $log, errorCheckFactory) {
    var columnDefs = [
        {headerName: "Make", field: "make"},
        {headerName: "Model", field: "model"},
        {headerName: "Price", field: "price"}
    ];

    var rowData = [
        {make: "Toyota", model: "Celica", price: 35000},
        {make: "Ford", model: "Mondeo", price: 32000},
        {make: "Porsche", model: "Boxter", price: 72000}
    ];

    $scope.gridOptions2 = {
        columnDefs: columnDefs,
        rowData: rowData,
        enableFilter: true,
        enableColResize: true,
        enableSorting: true,
        groupHeaders: true,
        rowHeight: 22,
        //onModelUpdated: onModelUpdated,
        suppressRowClickSelection: true

    };

}


person Sumit Khanduri    schedule 02.03.2016    source источник
comment
Вы нашли ее решение. Я также сталкиваюсь с той же проблемой.   -  person ranjeet8082    schedule 20.03.2017
comment
@ranjeet8082 ranjeet8082 проверьте свои привязки, как я сказал в своем ответе.   -  person Walfrat    schedule 27.03.2017
comment
привет, @ranjeet8082 ты можешь открыть сетку Во время нажатия кнопки вы можете написать gridOptions внутри функции. Таким образом, вы можете загрузить Html также в это время, используя ng-if, если сначала вы можете скрыть html, нажмите, только вы можете загрузить html, а затем в параметрах также загрузите функцию щелчка, поэтому вы не получите никакой ошибки. Вы можете проверить с помощью этого plunker. plnkr.co/edit/247nVYxwNmOXdHvutJNm?p=preview   -  person Naveen Kumar    schedule 28.03.2017


Ответы (3)


Если сетка не соответствует вашим параметрам gridOptions, это, безусловно, означает, что у вас есть опечатка в вашем HTML-шаблоне.

Проверьте свой HML-шаблон, он должен быть

ag-grid="gridOptions2"

Примечание: если вы используете контроллер с помощью метода controllerAs, вы должны привязать переменные к нему, а не к $scope.

Если это не так, добавьте ваш html и ваш маршрут/состояние/любое определение навигации.

person Walfrat    schedule 03.03.2016

Это проблема привязки угловой сетки. проверьте переменную области видимости gridOptions.

Функция параметров сетки:

var columnDefs = [
  {displayName: "Make", field: "make"},
  {displayName: "Model", field: "model"},
  {displayName: "Price", field: "price"},
  {displayName: "Price2 ", field: "price2"},
  {displayName: "Test 4", field: "test4"},
  {displayName: "Test 5", field: "test5"},
  {displayName: "Test 6", field: "test6"},
];

var rowData = [
  {make: "Toyota Toyota Toyota Toyota Toyota", model: "Celica", price: 35000, price2: 145, "Test 4": "Test 4", "Test 5": "Test 5", "Test 6": "Test 6"},
  {make: "Acura", model: "Celica", price: 35000, price2: 145, "Test 4": "Test 4", "Test 5": "Test 5", "Test 6": "Test 6"}
];

vm.gridOptions = {
  columnDefs: columnDefs,
  rowData: rowData  
};

Рабочий план: http://plnkr.co/edit/VRnwnXi6fzyaoJJ1YHOx?p=preview

Correct binding : <div angular-grid="main.gridOptions" class="ag-fresh" style="width: 100%"></div>

Ошибка Plnkr: http://plnkr.co/edit/zb4Vc2lw5VzRzYwsfhL7?p=preview

In-Correct Binding : <div angular-grid="main.gridOptions2" class="ag-fresh" style="width: 100%"></div>

Мы изменили привязку с gridOptions на gridOptions2, и это дает нам предупреждение: VM769 angular-grid.js:1 ПРЕДУПРЕЖДЕНИЕ — параметры сетки для Angular Grid не найдены. Убедитесь, что атрибут angular-grid указывает на допустимый объект в области видимости.

Думаю, это должно развеять сомнения.

person Samir    schedule 27.03.2017

@ranjeet8082 Вы можете открыть сетку. Во время нажатия кнопки вы можете написать «gridOptions» рядом с функцией. Таким образом, вы можете загрузить Html также в это время, используя ng-if, сначала вы можете скрыть html-клик, только вы можете загрузить html, а затем в параметрах также загрузить функцию щелчка, чтобы вы не получили никакой ошибки. Вы можете проверить с помощью этого plunker.

<div ng-if="vm.gridOptions"  angular-grid="vm.gridOptions" class="ag-fresh" style="width: 100%"></div>

ссылка

person Naveen Kumar    schedule 28.03.2017
comment
Хотя теоретически это может ответить на вопрос, было бы предпочтительнее включить сюда основные части ответа и предоставить ссылку для справки. Пожалуйста, отредактируйте сообщение и обновите ответ. - person Cœur; 21.07.2018