• Что такое такое rest api?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    API социальных сетей - это вполне типичные примеры реализации REST API.

    REST (RESTful) - это общие принципы организации взаимодействия приложения/сайта с сервером посредством протокола HTTP. Особенность REST в том, что сервер не запоминает состояние пользователя между запросами - в каждом запросе передаётся информация, идентифицирующая пользователя (например, token, полученный через OAuth-авторизацию) и все параметры, необходимые для выполнения операции.

    Всё взаимодействие с сервером сводится к 4 операциям (4 - это необходимый и достаточный минимум, в конкретной реализации типов операций может быть больше):
    1. получение данных с сервера (обычно в формате JSON, или XML)
    2. добавление новых данных на сервер
    3. модификация существующих данных на сервере
    4. удаление данных на сервере

    Операция получения данных не может приводить к изменению состояния сервера.

    Для каждого типа операции используется свой метод HTTP-запроса:
    1. получение - GET
    2. добавление - POST
    3. модификация - PUT
    4. удаление - DELETE

    Т.е. :

    GET-запрос /rest/users - получение информации о всех пользователях
    GET-запрос /rest/users/125 - получение информации о пользователе с id=125
    POST-запрос /rest/users - добавление нового пользователя
    PUT-запрос /rest/users/125 - изменение информации о пользователе с id=125
    DELETE-запрос /rest/users/125 - удаление пользователя с id=125
    Ответ написан
    20 комментариев
  • Angular 2: Удаление элементов страницы в зависимости от роли?

    Вы упустили то, что в вашем случае директива выступает как бы хостом для элементов, но вы ничего не добавляли в этот контейнер под названием viewContainerRef.

    Попробуйте написать структурную директиву как это:

    @Directive({
        selector: '[hasRole]'
    })
    export class HasRoleDirective implements OnInit {
        @Input() hasRole: Array<string>;
    
        constructor(private viewContainerRef: ViewContainerRef, 
                           private template: TemplateRef<any>) {}
    
        ngOnInit() {
            this.checkRoles('user');
        }
    
        checkRoles(userRole: string) {
            console.log("Роль пользователя: " + userRole);
            if (!this.hasRole || this.hasRole.indexOf(userRole) != -1) {
                console.log("Есть доступ");
                this.viewContainerRef.createEmbeddedView(this.template);
            } else {
                this.viewContainerRef.clear();
                console.log("Доступ запрещен");
            }
        }
    }


    Используйте просто со звездочкой

    <p *hasRole="['admin', 'user']"><Блок идят только Админ и Пользователь</p>
    <div *hasRole="['admin']">Тестовый блок который видит только Админ</div>


    Это аналогично этому

    <template [hasRole]="['admin', 'user']">
       <p>Тестовый параграф которые видят только Админ и Пользователь</p>
    </template>
    <template [hasRole]="['admin']">
       <div>Тестовый блок который видит только Админ</div>
    </template>

    Т.е. здесь template(будет текстовой нодой) выступает в роли хоста-контейнера для элементов. И мы в зависимости от наших условий решаем - добавлять или нет эти элементы в контейнер, которые пойдут следом за хостом. Если планируете динамически менять права, то можете использовать сеттер для инпута. Вот вам шаблон https://github.com/angular/angular/blob/2.4.5/modu...
    Ответ написан
  • Yii2 Carousel Gallery возможно?

    qonand
    @qonand
    Software Engineer
    Если правильно понял, Вам нужно это
    Ответ написан
    1 комментарий
  • Как вывести изображения в Yii2 Carousel?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Сформировать массив $items в контроллере, передать во вью, а от туда в виджет:
    $items = [];
    foreach(MySomeModel::find()->all() as $one){
    $items[] =  [
                    'content' => Html::img($one->imageUrl),
                    'caption' => $one->title,
                    'options' => ['style' => 'height:500px;']
                ],
    }
    return $this->render('someMyView',['items'=>$items]);

    <div class="row">
        <?php echo Carousel::widget([
            'items' => $items,
            'options' => [
                'style' => 'width:100%; padding-top:51px' // Задаем ширину контейнера
            ]
        ]);
        ?>
    </div>
    Ответ написан
    2 комментария
  • Разобрать JSON массив?

    Stalker_RED
    @Stalker_RED
    Можно обрезать скобочки, вот так: data.slice(1, -1), например.

    Но лучше, если есть возможность, подправить серверную часть, ту, что эти лишние скобочки добавляет.
    Ответ написан
    1 комментарий
  • Как сделать отступы между элементами списка?

    bootd
    @bootd Куратор тега CSS
    Гугли и ты откроешь врата знаний!
    Ответ написан
    Комментировать