Получить данные из базы данных на флажок, используя Angular - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь получить данные из базы данных (MariaDB), и если она существует, флажок должен быть установлен. Например, я дам вам скриншоты моего приложения: Здесь я ввожу некоторые данные и отправляю их (с помощью кнопки отправки) в базу данных

В базе данных у меня есть две таблицы. Во-первых, это «причины». В таблице «reasons» в столбце «имя» я сохраняю данные из поля ввода.

    **table "reasons"**
    id   |   name
    -------------
    1    |   reason1
    4    |   reason2
    5    |   reason3
    6    |   reason4
    7    |   reason 5
    ..   |   ......

Вторая таблица: "reason_to_transaction". Здесь "reason_id" является ссылкой на "id" из таблицы "reasons", то есть каждое "имя причины" имеет "transaction_type" (что может быть больше чем один, например, id = 4 из таблицы "reasons" имеет два "transaction_type" - продать, купить.

    **table "reason_to_transaction"*
 reason_id |   transaction_type
    ----------------
      1    |   sell
      4    |   sell
      4    |   buy
      5    |   sell
      5    |   buy
      5    |   pko
      6    |   sell
      7    |   sell
       ..  |   ......

Когда я открываю меню «причины» (по-болгарски: «основание»), я получаю следующее представление: Меню причин Когда я нажимаю на некоторые из этих имен, я получаю это представление (режим редактирования): Режим редактирования

В поле ввода у меня есть activeItem.id, по которому я щелкнул. Ниже этого поля ввода есть флажки, которые я хочу отметить. Это моя проблема. Я не знаю, как получить данные из этих двух таблиц из базы данных и установить флажок, который необходим. У меня есть этот код:

Это мой контроллер, где я создаю массив флажков:

app.controller("ReasonCtrl", function($rootScope, $scope){
    $scope.items = [];
    $scope.editMode = false;
    $scope.activeItem = false;
    $scope.albums = [{
        id: 1,
        name: 'sell'
      },
      {
        id: 2,
        name: 'buy'
      },
      {
        id: 3,
        name: 'pko'
      },
      {
        id:4,
        name: 'rko'
      }
      ];

С помощью этой функции я получаю данные от activeItem:

$scope.editItem = function(item){
        $scope.editMode = true;
        $scope.activeItem = angular.copy(item);
        $('.editMode1').show();
        $('.addMode1').hide();
        $('.myBox').hide();
        };

    $scope.createItem = function(item){
        $scope.editItem({});
    };

    $scope.saveItem = function(){
        console.log($scope.activeItem);
        //delete $scope.activeItem.hash_method
        var objectToSave = {

            name: $scope.activeItem.name,
            id: $scope.activeItem.id
        };

        if($scope.activeItem.id){
            defaultAdapter.query('UPDATE reasons SET name = :name WHERE id =:id ',
              { replacements: objectToSave, type: Sequelize.QueryTypes.UPDATE }
            ).then(defaultAdapter.query('SELECT rt.transaction_type,rt.reasons_id FROM reason_to_transaction rt INNER JOIN ',{type: Sequelize.QueryTypes.UPDATE}))
            .then(projects => {
              console.log(projects);
              $scope.editMode = false;
                $scope.activeItem = false;
                $scope.refresh();
            });
        } else {
            defaultAdapter.query('INSERT INTO reasons SET name = :name',
              { replacements: objectToSave, type: Sequelize.QueryTypes.UPDATE }
            ).then(projects => {
              console.log(projects);
              $scope.editMode = false;
                $scope.activeItem = false;
                $scope.refresh();
            });

        }

    };

Я все еще учусь программировать, и у меня нет идеи, как получить эти данные и установить флажки ... Может ли кто-нибудь помочь мне? Я использую Angular (метод sequelize) и MariaDB Спасибо!

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