如何基于DOM元素使用Angular隐藏元素

问题描述 投票:1回答:2

我有一个Umbraco装置。当我在CMS中进行编辑时,只要DOM中不存在文本编辑器,我希望“预览”按钮消失。

Example on where Preview button should be visible

本地化的角文件Umbraco/Views/content/edit.html

<form novalidate name="contentForm"
    ng-controller="Umbraco.Editors.Content.EditController"
    ng-show="loaded"
    ng-submit="save()"
    val-form-manager>

    <umb-panel umb-tabs ng-class="{'editor-breadcrumb': ancestors && ancestors.length > 0}">
        <umb-header tabs="content.tabs">

            <div class="span7">
                <umb-content-name placeholder="@placeholders_entername"
                                  ng-model="content.name" />
            </div>

            <div class="span5">
                <div class="btn-toolbar pull-right umb-btn-toolbar">
                    <div class="btn-group" ng-animate="'fade'" ng-show="formStatus">
                        <p class="btn btn-link umb-status-label">{{formStatus}}</p>
                    </div>

                    <umb-options-menu ng-show="currentNode"
                                      current-node="currentNode"
                                      current-section="{{currentSection}}"> 
                    </umb-options-menu>

                </div>
            </div>
        </umb-header>

        <umb-tab-view>
            <umb-tab id="tab{{tab.id}}" rel="{{tab.id}}" ng-repeat="tab in content.tabs">
                <div class="umb-pane">
                    <umb-property property="property"
                                  ng-repeat="property in tab.properties">
                        <umb-editor model="property"></umb-editor>
                    </umb-property>


                    <div class="umb-tab-buttons" detect-fold ng-class="{'umb-dimmed': busy}">

                        <div class="btn-group" ng-show="listViewPath">
                            <a class="btn" href="#{{listViewPath}}">
                                <localize key="buttons_returnToList">Return to list</localize>
                            </a>
                        </div>

                        <div class="btn-group" ng-show="!isNew">
                            <a class="btn" ng-click="preview(content)">
                                <localize key="buttons_showPage">Preview page</localize>
                            </a>
                        </div>

                        <div class="btn-group dropup" ng-if="defaultButton">
                            <!-- primary button -->
                            <a class="btn btn-success" href="#" ng-click="performAction(defaultButton)" prevent-default>
                                <localize key="{{defaultButton.labelKey}}">{{defaultButton.labelKey}}</localize>
                            </a>

                            <a class="btn btn-success dropdown-toggle" data-toggle="dropdown" ng-if="subButtons.length > 0">
                                <span class="caret"></span>
                            </a>

                            <a href="#">Return to list</a>

                            <!-- sub buttons -->
                            <ul class="dropdown-menu bottom-up" role="menu" aria-labelledby="dLabel" ng-if="subButtons.length > 0">
                                <li ng-repeat="btn in subButtons">
                                    <a href="#" ng-click="performAction(btn)" prevent-default>
                                        <localize key="{{btn.labelKey}}">{{btn.labelKey}}</localize>
                                    </a>
                                </li>
                            </ul>

                        </div>
                    </div>
                </div>
            </umb-tab>
        </umb-tab-view>


        <ul class="umb-panel-footer-nav nav nav-pills" ng-if="ancestors && ancestors.length > 0">
            <li ng-repeat="ancestor in ancestors">
                <a href="#/content/content/edit/{{ancestor.id}}">{{ancestor.name}}</a>
            </li>
            <li></li>
        </ul>

    </umb-panel>
</form>

我不确定这是正确的文件-但这似乎是创建Preview按钮的地方。

现在的问题是。我可以通过角度确定文本编辑器是否处于活动状态,然后将其显示在Preview旁边吗?

html angular umbraco
2个回答
1
投票

我建议以下内容

1]确定在传递给Save and publish指令的对象上可以访问哪些属性。

<umb-editor>

深入研究代码,我可以看到它具有enter image description here属性。您可以在运行时在浏览器控制台中检查此属性,以查看可用的其他属性

.view

2)您可以在按钮上写一条规则,以显示字段集合是否包含具有您可能已经确定的特定属性的字段

类似这样的东西...

enter image description here

希望这会有所帮助


0
投票

我找到了第二个解决方案,我不妨在这里添加。我使用了Umbraco插件enter image description here

这里我将此添加到我的Backoffice Tweaking文件中>

Config\BackofficeTweaking.config

在这里您还可以编写一些脚本或做许多其他事情。该插件还具有用于Umbraco的可视编辑器。相当容易使用。

© www.soinside.com 2019 - 2024. All rights reserved.