Достичь глобального масштаба - PullRequest
0 голосов
/ 28 мая 2020

У меня есть проблема с областью действия, которую я не могу решить. Картина стоит тысячи слов. Когда кнопки OK или REJ вызывают функцию reject (), передавая user_id в качестве id в качестве параметра функции отклонения.

Я получаю консольную ошибку JS в Firefox: «ReferenceError: BUUS123US163 не defined ".

Странно, что даже ошибка определена, то есть в ней указан уникальный идентификатор, который требуется. Я пробовал мелкие и глубокие копии данных в глобальный массив под названием theUsers, который еще не работал. Что мне не хватает в том, что я считаю проблемой области действия?

Обновление: JSON .parse error В предложении .catch функции reject ()

// function getting: JSON.parse error

    function reject(id) {

      console.log("hey: reject ran... ");
      // User Data
      const data2 = {
        user_id: '',
        utility: 'delete'
      }

      data2.user_id = id;

      // // POST  :  pass user
      http.post('http://localhost:9999/Password/empapproval', data2)
        .then(data => console.log(data))
        .catch(err => console.log(err));

    }

// http.post calls the following:

    post(url, data) {

        console.log("easyHttp is running ...");


        return new Promise((resolve, reject) => {

            console.log("easyHttp Promise is running ...");

            fetch(url, {
                method: 'POST',
                headers: {
                    'Content-type': 'application/json'
                },
                body: JSON.stringify(data)
            })
                .then(res => res.json())
                .then(data => resolve(data))
                .catch(err => reject(err));
        });

    }


picture of html, code, and console

1 Ответ

0 голосов
/ 28 мая 2020

Похоже, что если вы передаете идентификатор в качестве простого аргумента функциям reject и ok, его нужно будет заключить в кавычки для оценки таким образом, в результате получится reject ("some-id") vs reject(some-id), для этого для работы код в строке 224 должен быть

`<td><button onclick="reject('${d.user_id}')" class="" ...`

vs

`<td><button onclick="reject(${d.user_id})" class="" ...`

Кроме того, this.id не имеет большого смысла, потому что контекст this предоставляет только вы ссылаетесь на свой элемент, когда используете jquery слушателей событий, а не html слушателей атрибутов «onclick». Похоже, это должно быть просто id, аргумент функции, или вы хотите вручную, после вставки HTML do $(el).on('click', function() { var val = this.dataset.value; /*...*/ });

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...