【问题标题】:Reusing Umbraco datetime picker重用 Umbraco 日期时间选择器
【发布时间】:2015-10-13 01:05:26
【问题描述】:

Umbraco 7 有这个日期/时间选择器

您如何在自定义控件中重用它以避免重新发明轮子?

目前我只有一个纯文本框:

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

【问题讨论】:

    标签: angularjs umbraco umbraco7


    【解决方案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');
    

    或者类似的东西。我尚未对其进行测试,但它是从我现有的项目中派生出来的,该项目以类似的方式在自定义 UI 上实现 ContentPicker。

    您可能还会发现这有助于了解可用的配置选项:

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

    【讨论】:

    • 谢谢。这样可行。但我希望有一种方法可以只绑定没有标签的文本框。
    • 你可能可以;例如,您可能可以摆脱 umbProperty 指令(iirc 它只是添加了 chrome);如果您愿意,可以根据umbEditor 创建自己的指令并使用它。
    • 如果可以的话,我会投三票 - 非常感谢!
    • "config: {dateFormat ..." 不正确,应该是"config: {format..."
    • 好皮卡 - 谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    相关资源
    最近更新 更多