加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

由于ng-if,angularjs指令的’$element’是注释

发布时间:2020-12-17 10:22:24 所属栏目:安全 来源:网络整理
导读:我正在尝试为 angularjs应用程序构建一个弹出窗口(对话框)指令. (仍然很多待…) 但是,我创建了一个模板文件,用于构建弹出元素,并插入使用directive元素传递的属性中的值. 问题是,我在该模板中有几个ng-ifs用于检查范围中不同的属性值,然后角度插入像 !-- ngI
我正在尝试为 angularjs应用程序构建一个弹出窗口(对话框)指令. (仍然很多待…)
但是,我创建了一个模板文件,用于构建弹出元素,并插入使用directive元素传递的属性中的值.

问题是,我在该模板中有几个ng-ifs用于检查范围中不同的属性值,然后角度插入像

<!-- ngIf: active -->

前后相关要素.所以我得到注释而不是控制器中$element参数中的实际元素!

为什么没有角度跳过那里的评论?我怎么能克服那个?

我的模板代码(popup_template.html):

<div class="{{className}}" ng-if="active" style="{{popupStyle}}" ng-keyup="closeByEscape($event)">
    <div class="vex-overlay" style="{{overlayStyle}}"></div>

    <div class="vex-content" style="{{contentStyle}}">
        <form class="vex-dialog-form" ng-if="type=='plain'">
            <div class="vex-dialog-message" ng-if="message!=null">
                {{message}}
            </div>
        </form>
        <div ng-if="type=='advanced'" class="transcluded">

        </div>
        <div class="vex-close" ng-if="showCloseButton" ng-click="close()"></div>
    </div>
</div>

现在我的角度代码:

app.directive('popup',['popupfactory','$timeout',function (popupfactory,$timeout) {
return {
    restrict: 'E',replace: true,templateUrl: 'popup_template.html',transclude: true,scope: false,link: function (scope,element,attrs,$timeout) {

        /* Declarations of all scope variables*/

        /*** Here,element is a comment! ***/

    },controller: ['$scope','$element','$attrs','$transclude','$http',function ($scope,$element,$attrs,$transclude,$http) {

      /*** Here,$element is a comment! ***/

    }],};
}]);

我会非常感谢任何评论.

我不确定我是否完全理解你的问题,但如果你想使用这些元素的指令,我建议使用ng-show和ng-hide代替ng-if,因为后者可以真正搞砸任何事件处理程序你通过指令申请.

使用ng-if节点是从DOM中添加和删除的(因此我想插入像你的指令中的注释),而ng-show和ng-hide只是通过样式使节点不可见,让任何处理程序保持活着并允许你操作内容很容易.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读