Ошибка отображения данных - область действия - AngularJS - PullRequest
0 голосов
/ 09 ноября 2018

У меня проблема с отображением данных с помощью AngularJS.

Так что мое приложение основано на AngularJS и CodeIgniter 3.

Я создал проверку в CodeIgniter, написанную в форме, все работает.

public function create()
    {
        $this->form_validation->set_error_delimiters('','');
        $this->form_validation->set_rules( 'login' , 'Imię' , 'required|min_length[3]' );
        $this->form_validation->set_rules( 'email' , 'Email' , 'required|valid_email|is_unique[users.email]' );
        $this->form_validation->set_rules( 'password' , 'Hasło' , 'required|matches[passconf]' );
        $this->form_validation->set_rules( 'passconf' , 'Powtórz hasło' , 'required|matches[password]' );

        if ( $this->form_validation->run())
        {
            $user = $this->input->post('user');
            unset($user['passconf']);
            $user['password'] = crypt($user['password'], config_item('encryption_key'));
            $this->Users_model->create($user);
        }

        else
        {
            $errors['login'] = form_error( 'login' );
            $errors['email'] = form_error( 'email' );
            $errors['password'] = form_error( 'password' );
            $errors['passconf'] = form_error( 'passconf' );
            echo '{"records":' . json_encode( $errors ) . '}';
        }


    }

На стороне AngularJS я хотел, чтобы появилась ошибка.

controllersAdmin.controller('userCreate', function( $scope, $http, $timeout ){

  $scope.user = {};
  $scope.user.role = 'user';

   $scope.createUser = function( user ){
    $http({
      method: 'POST', url: 'api/admin/users/create/' , 
      data: {
        user : user,
        login : user.login,
        email : user.email,
        password : user.password,
        passconf : user.passconf
      }}
      ).then(function ( errors ){ 

        if ( errors )
      {
        $scope.errors = errors;
      }
      else
      {
        $scope.success = true;
        $timeout(function(){
          $scope.success = false;
          $scope.user = {};
        } , 3000 );
      }


   },function (error){
      console.log('Blad we wczytywaniu danych');
   });
   }
});

Я создал $scope.errors = errors;

Когда я отображаю его с помощью {{errors}} - отображаются данные.

{"data":{"records":{"login":"Pole Imię jest wymagane.","email":"Pole Email jest wymagane.","password":"Pole Hasło jest wymagane.","passconf":"Pole Powtórz hasło jest wymagane."}},"status":200,"config":{"method":"POST","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"api/admin/users/create/","data":{"user":{"role":"user"}},"headers":{"Accept":"application/json, text/plain, */*","Content-Type":"application/json;charset=utf-8"}},"statusText":"OK","xhrStatus":"complete"}

Однако, когда я даю {{errors.login}}, данные не отображаются. Могу ли я рассчитывать на небольшую помощь?

1 Ответ

0 голосов
/ 09 ноября 2018

Вот твоя проблема.Логин - это не свойство объекта ошибок, а подчиненное свойство.Это должны быть ошибки. Data.records.login.

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