ui.bootstrap.contextMenu

2025-12-07 0 649

ContextMenu

AngularJS UI引导模块用于将上下文菜单添加到元素中。演示

用法

将参考添加到contextMenu.js 。在您的应用程序配置中,添加ui.bootstrap.contextMenu作为依赖关系模块。

上下文菜单设置

  • context-menu-on默认值:'ContextMenu')逗号分隔字符串字面,其中包含将触发上下文菜单出现的事件。
  • context-menu-empty-text (默认值:'空')一个角度表达式,该角度表达式包含上下文菜单为空的字符串
  • context-menu-class – 一个字符串字面包含要添加到上下文菜单的自定义类(<ul>元素)
  • allow-event-propagation (默认值:false)一个布尔值确定是否允许事件传播。请注意,如果您将其设置为True,并且不要使用其他内容来捕捉,则浏览器的上下文菜单将显示在此库上下文菜单的顶部。
  • model – (请参见下面的模型属性)
  • close-menu-on (默认值:')字符串字面包含用于触发菜单关闭操作的事件。

看法

 < div >
    < div ng-repeat =\" item in items \" context-menu =\" menuOptions \" > Right Click: {{item.name}} </ div >
</ div >
< div ng-bind =\" selected \" > </ div >
  • 或者
 < div >
    < span > you can specify the event on how the menu opens: </ span >
    < div ng-repeat =\" item in items \" context-menu =\" menuOptions \" context-menu-on =\" click \" > Left Click: {{item.name}} </ div >
</ div >
< div ng-bind =\" selected \" > </ div >

回调参数

当前有5个参数正在传递给回调:

  • $itemScope指令的范围
  • event – 与此指令相关的事件(通常是contextmenu
  • modelValue请参见下面的“模型属性”
  • text – 文本的HTML值。通常,这包含默认情况下围绕文本的标签。
  • $li选择的列表项目

控制器

 $scope . selected = \'None\' ;
$scope . items = [
    { name : \'John\' , otherProperty : \'Foo\' } ,
    { name : \'Joe\' , otherProperty : \'Bar\' }
] ;

$scope . menuOptions = [
    // NEW IMPLEMENTATION
    {
        text : \'Object-Select\' ,
        click : function ( $itemScope , $event , modelValue , text , $li ) {
            $scope . selected = $itemScope . item . name ;
        }
    } ,
    {
        text : \'Object-Remove\' ,
        click : function ( $itemScope , $event , modelValue , text , $li ) {
            $scope . items . splice ( $itemScope . $index , 1 ) ;
        }
    } ,
    // LEGACY IMPLEMENTATION
    [ \'Select\' , function ( $itemScope , $event , modelValue , text , $li ) {
        $scope . selected = $itemScope . item . name ;
    } ] ,
    null , // Dividier
    [ \'Remove\' , function ( $itemScope , $event , modelValue , text , $li ) {
        $scope . items . splice ( $itemScope . $index , 1 ) ;
    } ]
] ; 

菜单选项

菜单选项传递给上下文 – 可能是:

  • 一个包含对象的数组来表示上下文菜单中的每个项目
  • 返回对象数组的功能(如上)
  • 承诺返回对象或函数数组(如上)

新实施

每个菜单选项都由包含以下属性的对象表示:

财产 类型 描述
文本 功能/字符串 返回字符串或实际字符串本身的函数。必须指定文本或HTML
html 功能/字符串 返回用于此菜单选项的HTML的函数或字符串。必须指定文本或HTML
编译 布尔 要编译HTML字符串以使用HTML字符串中的自定义指令
点击 功能 单击选项的要调用的功能
启用 功能/布尔值 函数返回该选项是否已启用,或布尔值
显示 功能/布尔值 无论是否显示该选项,还是布尔值。如果不显示,根本没有创建任何元素,将执行与项目的任何内容(事件,返回孩子的功能等)
孩子们 数组/功能/承诺 [数组] – 级别的对象的实际数组; [函数] – 返回一个对象数组,或返回以下指定的数组或承诺的函数; [诺言] – 用数组或返回上面指定的数组的函数解决
HASTOPDIVIDER 功能/布尔值 函数/布尔值返回是否在当前项目之前附加分隔线。默认为false
HasbottomDivider 功能/布尔值 功能/布尔值返回是否在当前项目之后附加分隔线。默认为false

传统实施(仍然受支持,但不会再更新)

每个菜单选项都有一个带有2-3个索引的数组。大多数项目将使用[String, Function]格式。如果您在上下文菜单中需要动态项目,则还可以使用[Function, Function]格式。

第三个可选索引是用于启用/禁用项目的函数。如果函数返回true,则启用项目(默认)。如果没有提供功能,则默认情况下将启用该项目。

 $scope . menuOptions = [
    [ function ( $itemScope , $event , modelValue , text , $li ) {
        return $itemScope . item . name ;
    } , function ( $itemScope , $event ) {
        // Action
    } , function ( $itemScope , $event , modelValue , text , $li ) {
        // Enable or Disable
        return true ; // enabled = true, disabled = false
    } ]
] ;

菜单上的菜单也可以定义为返回数组的函数。一个空数组将不会显示上下文菜单。

 < div ng-repeat =\" item in items \" context-menu =\" menuOptions(item) \" > Right Click: {{item.name}} </ div > 
 $scope . menuOptions = function ( item ) {
    if ( item . name == \'John\' ) { return [ ] ; }
    return [
        [ function ( $itemScope ) {
            return $itemScope . item . name ;
        } , function ( $itemScope ) {
            // Action
        } ]
    ] ;
} ; 

事件

每当上下文菜单打开或关闭时,您都可以收听一些事件

  • context-menu-opening – 在最初打开上下文菜单之前触发
  • context-menu-opened – 触发每当任何上下文菜单完全打开时
  • context-menu-closed – 触发任何上下文菜单时
  • context-menu-all-closed – 触发所有上下文菜单均已关闭

样本使用

 $scope . $on ( \'<event_name_here>\' , function ( event , args ) {
  args . context ; // The element this directive is attached to
  args . params ; // Available only for context-menu-opened the params passed for the context menu
  args . contextMenu ; // Available only for context-menu-opened and context-menu-closed. The $ul element of this context menu.
} ) 

模型属性(可选)

在未通过$itemScope (即不使用ngRepeat )的引用的情况下,有一个model属性可以传递一个值。

 < div context-menu =\" menuOptions \" model =\" expression \" > Some item name here </ div >

使用$范围评估该model作为表达式$scope.$eval并通过第三个参数。

 $scope . menuOptions = [
    [ function ( $itemScope , $event , modelValue ) {
        return $itemScope . item . name ;
    } , function ( $itemScope , $event , modelValue ) {
        // Action
    } , function ( $itemScope , $event , modelValue ) {
        // Enable or Disable
        return true ; // enabled = true, disabled = false
    } ]
] ; 

样式覆盖

将类angular-bootstrap-contextmenu添加到<div>中,该上下文menu已附加到。

为了在菜单打开时添加下面的样式时给出较轻的深色残疾色调。

 body > . angular-bootstrap-contextmenu . dropdown {
    background-color : rgba ( 0 , 0 , 0 , 0.1 );
}

下载源码

通过命令行克隆项目:

git clone https://github.com/Templarian/ui.bootstrap.contextMenu.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 开发教程 ui.bootstrap.contextMenu https://www.zuozi.net/31589.html

Poddr
上一篇: Poddr
fastcgi_json_cpp_api
下一篇: fastcgi_json_cpp_api
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务