1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/increase-angular-ocDialog

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

angular-ocDialog

Базовый на Angular фреймворк для диалоговых окон

Статус проекта

Общие сведения

Пример проекта, который находится в процессе разработки
Демо: http://probedemo.or-change.cn/probe
Репозиторий: https://git.oschina.net/increase/LemonProbe.git

  • Версия (Version): 0.5.1 Alpha 1
  • Автор (Author): Чжао Ли, Вейлин Ши, Юэю Ли
  • Лицензия (License): MIT
  • Поддерживаемые браузеры (Supported Browsers): Chrome, Firefox, Safari, Opera, IE 9+, iOS Safari 7.1+, Android Browser 2.3+
  • Документация (Documentation): Некоторые функции уже реализованы, но документация всё ещё находится в процессе доработки

Подмодули (Submodules)

Быстрый старт

С помощью этого руководства вы узнаете основной процесс использования данного фреймворка.
Если вас интересует демонстрация работы, вы можете посетить файл test/debugger.html, где содержится несколько незаконченных примеров.
Для более полного примера приложения обратитесь к нашему проекту WEB автоматизации тестирования Lemonce - LemonProbe.
Дополнительные ссылки см. в разделе Общие сведения.
Кроме того, версия Lemonce v0.6.4 Alpha 1 больше не обновляется, а версия Alpha 2 находится в активной разработке. Интересующихся можно попросить посетить:
(http://www.lemonce.net/) для получения информации о продукте Alpha 1

УстановкаДобавьте скрипты и стили, обратите внимание на необходимость загрузки ресурсов ocCore, адрес проекта см. в разделе [Статус проекта > Подмодули]

<script src="./ocCore_Path/dist/ocCore.min.js"></script>
<script src="./ocDialog_Path/dist/ocDialog.min.js"></script>
<link rel="stylesheet" href="./ocDialog_Path/dist/style.css"/>

Конфигурация

angular.module("YourApp", ["oc-dialog"])
    .config(function(ocDialogProvider) {
        // Настройка маршрута для ресурсов диалогового окна
        ocDialogProvider.config("ROUTE_PATH", "./src/dialog/");
        // Основной z-index диалогового окна
        ocDialogProvider.config("BASE_Z_INDEX", 500);
});

Инструкции - Directive

ocDialogOpen - Открытие диалогового окна согласно конфигурации

в качестве атрибута:

<ANY
    oc-dialog-open="">
...
</ANY>

Использование директивы для открытия диалогового окна автоматически блокирует родительское окно (если оно существует).

Пример

Открытие диалогового окна согласно конфигурации:

<script>
yourAppModule.controller('OpenDialog', function($scope) {
    $scope.myDialog = {
        name: "dialogFactoryName",
        share: function() {
            return {
                data: "Определяет данные, которые будут общими между открытым окном и текущим окном",
                ...
            };
        }
    };
});

controller('MyDialog', function ($scope, $element, ocDialog) {
    var DI = ocDialog.queryDI($element); // Поиск экземпляра диалогового окна, связанного с контроллером
    console.log(DI.share); // Доступ к общим данным
    ...
});
</script>

<div ng-controller="OpenDialog">
    <button oc-dialog-open="myDialog">Открыть диалоговое окно</button>
</div>

myDialog.html

<oc-dialog>
    <div ng-controller="MyDialog"></div>
</oc-dialog>

ocDialogSizeMode - Переключение между полноэкранным режимом и обычным размером окна

ocDialogClose - Закрытие окна

как атрибут:

<ANY
    oc-dialog-close>
...
</ANY>

Автоматически ищет ближайшее диалоговое окно и закрывает его.

Пример

myDialog.html

<oc-dialog>
    <div ng-controller="MyDialog">
        <button oc-dialog-close>Отмена</button>
    </div>
</oc-dialog>

ocAlertOpen - Открытие окна с предупреждением

как атрибут:

<ANY
    oc-alert-open="">
...
</ANY>

ocFileOpen - Открытие окна со списком файлов

как атрибут:

<ANY
    oc-file-open="">
...
</ANY>

Сервис - Service

ocDialog.queryDI(element) - Получение экземпляра диалогового окна по HTMLElement

ocDialog.getNewDI(dialogFactoryName) - Получение нового экземпляра диалогового окна по имени фабрики

ocDialog.alert(options) - Создание и открытие экземпляра диалогового окна с предупреждением

ocDialog.file(options) - Создание и открытие экземпляра диалогового окна со списком файлов

Проектирование окон

Используйте ocDialog для создания своих собственных директив

ocDialog

Создайте самое простое диалоговое окно без содержимого:

<oc-dialog></oc-dialog>

ocDialogTitle - Заголовок окна

Этот атрибут влияет на содержимое заголовка окна, значение используется как прямой текст:

<oc-dialog oc-dialog-title="Заголовок моего окна"></oc-dialog>
```### ocDialogIcon — Класс иконки окна
Этот атрибут влияет на класс иконки в верхнем левом углу окна, который можно использовать для применения пользовательских CSS стилей:
```html
<oc-dialog oc-dialog-icon="lemoncelogo"></oc-dialog>
```### ocDialogSwitch — Настройки переключения окна
Этот атрибут используется для скрытия кнопок управления в правом верхнем углу: M — скрыть кнопку минимизации, S — скрыть кнопку изменения размера.
```html
<oc-dialog oc-dialog-switch="MS"></oc-dialog>
```### Процесс разработки
В зависимости от [настроек](#настройки), создайте определение окна в директории проекта `src/dialog/`:
```plaintext
welcome.

Создайте определение простого окна входа, с использованием метода расположения элементов emGrid:

<oc-dialog style="width:10.2rem;height:6rem" oc-dialog-title="Окно входа" oc-dialog-switch="MS">
    <div class="grid" ng-controller="Login">
        <label style="top:0rem;left:0.3rem;">Введите токен:</label>
        <input type="text" style="top:1.3rem;left:0.3rem;width:16em;">
        <button oc-dialog-open="main"
            style="right:0.3rem;bottom:0.3rem;height:1.4rem;width:4.3rem">Отмена</button>
    </div>
</oc-dialog>

Напишите HTML-элемент в HTML, чтобы открыть это окно, используя скрипты Angular и других ресурсов, таких как установка. Пример файла запуска приложения может выглядеть следующим образом:

<!DOCTYPE html>
<html ng-app="probe" ng-controller="Global" style="font-size: 20px;">
    <head>
        <meta charset="utf-8"/>
        <script src="[ваш путь]/angular.min.js"></script>
        <!-- Ресурсы, необходимые для установки -->
    </head>
    <body>
        <a oc-dialog-open="welcomeDialog">Открыть окно входа</a>
    </body>
</html>

Используется контроллер с названием Global, который предоставляет конфигурацию для открытия окна приветствия:

youApp.controller('Global', function($scope) {
    $scope.welcomeDialog = {
        name: 'welcome'
    };
});

Запустите приложение, кликните по кнопке «Открыть окно входа», чтобы открыть ранее определённое окно. Кроме того, можно продолжать кликать по этой кнопке, чтобы бесконечно открывать экземпляры окон, созданные оконной фабрикой.### emGrid Метод размещения элементов двумерного окна с поддержкой глобального масштабирования, используемый для браузеров, поддерживающих единицы измерения rem.

Элементы

Набор абстракций контролов, имитирующий часто используемые элементы управления операционной системы.

Панель инструментов

Операционные ручки

Кнопки / Ввод данных

Контроллеры <button> и <input>, находящиеся внутри диалогового окна, будут подвержены влиянию.

ocAddress — адресная панель

Элемент управления страницей, содержащей iframe.

ocListMenu — список меню

Меню списка, имитирующее Windows 10 в режиме классического дизайна.

ocTabs — вкладки

Элемент управления вкладками, имитирующий стиль Windows 8/10. Можно использовать один объект управления для внешнего управления поведением и состоянием элемента управления вкладками.

Пример использования

Как элемент:

<oc-tab-set oc-tab-control="...">
    <oc-tab oc-tab-title="..." oc-tab-active-fn="...">...</oc-tab>
    ...
</oc-tab-set>
Пример

Простое использование директивы для создания элемента управления ocTab, размер которого определяется прямо в директиве ocTabSet:

<oc-tab-set style="width:20rem;height:20rem">
...

Используйте контроллер ocTabControl для установки активной вкладки по умолчанию. Для этого требуется определить объект (например, tabControl) в области видимости $scope.Контроллер ocTabControl отражает этот объект в области видимости ocTabSet. Через этот контроллер можно устанавливать/получать текущую выбранную вкладку; через доступ к объекту $tabs можно управлять состоянием вкладок.

Пример использования контроллера для активации первой вкладки по умолчанию, деактивации второй вкладки и активации третьей вкладки снаружи:

<script>
yourAppModule.controller('TabDemo', function($scope) {
    $scope.tabControl = {
        selected: 1
    };
    $scope.toDisable = function(index) {
        $scope.tabControl.selected = index;
    }
    $scope.activeTab = function(index) {
        $scope.tabControl.$tabs[index].isDisabled = true;
    }
});
</script>

<div ng-controller="TabDemo">
    <button ng-click="toDisable(0)">Деактивировать первую вкладку</button>
    <button ng-click="activeTab(2)">Активировать третью вкладку</button>
    <label>Номер активированной вкладки:</label>
    <input ng-model="tabControl.selected"/>
    <oc-tab-set oc-tab-control="tabControl" style="width:20rem;height:20rem">
        <oc-tab oc-tab-title="Вкладка 0">вкладка 0</oc-tab>
        <oc-tab oc-tab-title="Вкладка 1">вкладка 1</oc-tab>
        <oc-tab oc-tab-title="Вкладка 2">вкладка 2</oc-tab>
    </oc-tab-set>
</div>

Если вам нужно выполнить какое-либо действие при активации конкретной вкладки, вы можете использовать атрибут ocTabActiveFn, чтобы привязать метод к этой вкладке.

<script>
yourAppModule.controller('TabDemo', function($scope) {
    $scope.activeFn = function() {
        console.log('Здравствуй, мир!');
    }
});
</script><div ng-controller="TabDemo">
    <oc-tab-set oc-tab-control="tabControl" style="width:20rem;height:20rem">
        <oc-tab oc-tab-title="Tab 0" oc-tab-active-fn="activeFn">tab 0</oc-tab>
        <oc-tab oc-tab-title="Tab 1">tab 1</oc-tab>
        <oc-tab oc-tab-title="Tab 2">tab 2</oc-tab>
    </oc-tab-set>
</div>

В этом примере каждый раз, когда активируется первая вкладка, вызывается метод activeFn.

ocGrid — сеточный компонент

Сеточный компонент для работы с двумерными массивами данных, аналогично Excel. Пример использования может выглядеть следующим образом:

<oc-grid data="data"></oc-grid>
``````js
[
    ['один', 'два', 'три'],
    ['foo', 'bar', 'baz'],
    ['дуанг', 'дуанг', 'дуанг'],
    ['1', '2', '3'],
    ['пехота', 'артиллерия', 'конница'],
    ['земля', 'воздух', 'море']
]
``````markdown
[['Цинь', 'Шу'], ['первый', 'второй', 'третий'], ['Южный округ', 'Средний округ', 'Западный округ'], ['Восточный округ', 'Центральный округ', 'Южный округ'], ['Восточно-южный округ', 'Северо-западный округ', 'Северо-восточный округ'], ['Юго-восточный округ', 'Южный округ', 'Юго-западный округ'], ['Западный округ', 'Средне-южный округ', 'Южнозападный округ'], ...]

Такое двумерное массива данных отображается в виде электронной таблицы, аналогичной Excel.

Использование

как Элемент:

<oc-grid style="width:400px;height:500px"
    oc-grid-data=". . . "
    oc-grid-refresh=". . . "
    oc-grid-control=". . . "></oc-grid>

ocList — список данных

Контрол, имитирующий список файлов Windows. Основной формат данных может выглядеть следующим образом:

[
    { fileName: 'xxxx1', updateTime: 'yyyy-HH-dd', ... },
    { fileName: 'xxxx2', updateTime: 'yyyy-HH-dd', ... },
    { fileName: 'xxxx3', updateTime: 'yyyy-HH-dd', ... },
    { fileName: 'xxxx4', updateTime: 'yyyy-HH-dd', ... },
    ...
]

Эти данные отображаются списком.

Использование

как Элемент:

<oc-list oc-list-data=". . ." oc-list-control=". . . "></oc-list>

Пример

Простое указание источника данных, заголовки колонок будут сгенерированы автоматически на основе ключей первого объекта списка, ширина по умолчанию составляет 120 пикселей:

<script>
yourAppModule.controller('listDemo', function($scope) {
    $scope.listData = [
        { fileName: 'xxxx1', updateTime: '2001-04-21' },
        { fileName: 'xxxx2', updateTime: '2001-04-22' },
        { fileName: 'xxxx3', updateTime: '2001-04-23' },
        { fileName: 'xxxx4', updateTime: '2001-04-24' }
    ];
});
</script>
<div ng-controller="listDemo">
    <oc-list oc-list-data="listData"></oc-list>
</div>
```

Используя контроллер, поведение компонента `ocList` можно управлять внешним образом. Например, установка/получение текущего выбранного элемента, установка заголовков и их ширины:

```html
<script>
yourAppModule.controller('listDemo', function($scope) {
    $scope.listData = [
        { fileName: 'xxxx1', updateTime: '2001-04-21' },
        { fileName: 'xxxx2', updateTime: '2001-04-22' },
        { fileName: 'xxxx3', updateTime: '2001-04-23' },
        { fileName: 'xxxx4', updateTime: '2001-04-24' }
    ];
    $scope.listCtrl = {
        selected: 2,
        header: [
            {
                key: 'fileName',
                text: "Файл",
                width: '70px'
            },
            {
                key: 'updateTime',
                text: "Дата обновления",
                width: '6em'
            }
        ]
    };
});
</script>
<div ng-controller="listDemo">
    <oc-list oc-list-data="listData" oc-list-control="listCtrl"></oc-list>
</div>
```

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/increase-angular-ocDialog.git
git@api.gitlife.ru:oschina-mirror/increase-angular-ocDialog.git
oschina-mirror
increase-angular-ocDialog
increase-angular-ocDialog
master