Как обновить компонент таблицы oj-table в oracle-jet? - PullRequest
0 голосов
/ 18 февраля 2019

Я добавляю данные в API и хочу, чтобы моя oj-таблица отображала их.Как обновить конкретный компонент в oracle-jet?

Я занимаюсь разработкой приложения с использованием oracle-jet v6.1.0, где я использую локальный apis для получения и хранения данных и отображаю их в виде таблиц.Я отправляю запрос POST, и данные сохраняются в базе данных, и в функции обратного вызова я перехожу на страницу таблицы, но я не получаю новые строки!

Эта функция, когда я нажимаю кнопку отправки:

   self.submitopportunity = function() {

        var dataObj = {
            "projectName": self.custProject(),
            "department": self.custDepartements(),
            "type": self.srtVal(),
            "budget": self.custBudget(),
            "description": self.solutionVal(),
            "closeDate": self.closeDate(),
            "customer": self.nameVal(),
            "product": self.productVal(),
            "status":  self.statusVal(),
            "contact": self.contactVal(),
            "favorite": false
        };
        console.info(dataObj);
        $.ajax({
            url: url + '/opportunity',
            type: "POST",
            data: JSON.stringify(dataObj),
            contentType: 'application/json',
            success: function (response) {
                oj.Router.rootInstance.go("opportunities");
                return true;
            },
            error: function(error){
                console.log("Something went wrong", error);
            }
        })

    };

Когда я обновляю страницу, добавляются новые строки.Итак, как я могу синхронизировать или обновить компонент oj-table?

1 Ответ

0 голосов
/ 19 февраля 2019

Все компоненты oracle JET имеют функцию «обновления».Просто сделайте это:

document.getElementById('yourtableid').refresh();

Чтобы обновить компонент сразу после перехода на страницу таблицы, вам нужно использовать тот факт, что oj.Router go метод возвращает Обещание ,Мы можем использовать обратный вызов для обновления таблицы.

success: function (response) {
      oj.Router.rootInstance.go("opportunities").then(
         function(result) {
            if (result.hasChanged) {
                document.getElementById('yourtableid').refresh();
            }
         },
         function(error) {
            console.log('Failed. ', error);
         }
      );
      return true;
 }
...