Повторное использование средства выбора даты и времени Umbraco

В Umbraco 7 есть средство выбора даты/времени введите здесь описание изображения

Как вы повторно используете это в пользовательском элементе управления, чтобы не изобретать велосипед?

В настоящее время у меня есть только обычное текстовое поле:

<input type='text' ng-model='validTo' />

person Aximili    schedule 13.10.2015    source источник


Ответы (1)


Возможно, самый простой способ — создать экземпляр нужного редактора в контроллере и связать его с директивой umbEditor. Ваш шаблон может включать что-то вроде этого:

    <umb-property ng-if="validTo.hasValue" property="validTo.model">
        <umb-editor model="validTo.model"></umb-editor>
    </umb-property>

в то время как ваш контроллер может содержать что-то вроде этого:

$scope.validTo = {
    model: null,
    existingValue: null, 
    hasValue: false
};

function buildDateTimePickerModel(alias, label, description) {
    return {
        editor: "Umbraco.DateTime",
        label: label,
        description: description,
        hideLabel: false,
        view: "datepicker",
        alias: alias,
        value: null,
        validation: {
            mandatory: false,
            pattern: ""
        },
        config: {
            format: "YYYY-MM-DD HH:mm:ss",
            pickDate: true,
            pickTime: true,
            useSeconds: true
        }
    };
};

$scope.validTo.model = buildDateTimePickerModel('validTo', 'Valid To', 'Enter the Valid To date');

Или что-то вроде того. Я не тестировал его, но получил его из моего существующего проекта, который аналогичным образом реализует ContentPicker в пользовательском интерфейсе.

Вы также можете найти это полезным, чтобы получить представление о доступных параметрах конфигурации:

https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.controller.js#L4-L16

person Robert Foster    schedule 13.10.2015
comment
Спасибо. Это работает. Но я бы хотел, чтобы был способ связать только текстовое поле без метки. - person Aximili; 19.10.2015
comment
Вы, вероятно, могли бы; например, вы, вероятно, могли бы избавиться от директивы umbProperty (iirc просто добавляет хром); и вы можете создать свою собственную директиву на основе umbEditor, если хотите, и использовать ее вместо этого. - person Robert Foster; 19.10.2015
comment
Я бы проголосовал за это три раза, если бы мог - большое спасибо! - person DavidWainwright; 07.02.2017
comment
config: {dateFormat... неверно, должно быть config: {format... - person Daniel Bardi; 11.02.2017
comment
Хорошая подборка - Спасибо! - person Robert Foster; 12.02.2017