javascript - angular directive问题
高洛峰
高洛峰 2017-04-11 11:07:54
[JavaScript讨论组]



    
    


{{text}}

问一下,在html expander标签里的expander-title='title'是什么意思跟下面directive指令里的scope对象有什么关系?为什么要声明scope:{title:'=expanderTitle'}

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
高洛峰
scope : {
                title : '=expanderTitle'//这里是什么意思????????
            },

这个scope参数用于定义指令是否需要独立的scope。
scope参数赋值有三种情况:
1、scope:true/false;
直接用布尔类型表示是否需要,如果为true则指令有单独的scope,如果没有则为父scope。
2、scope:{}
scope等于一个object对象,则表示需要单独的scope,并且scope会包含这个object对象中的属性,但是这个属性的规则是有要求的。
分为三种,@、=、&
@ 绑定的是一个字面量值
= 是双休绑定父页面上的一个属性
& 要求绑定父页面上的一个function
例如:

scope:{
    title:@titleStr
    name:=parantName,
    fly:&parantFly
}

最终指令的scope初始化后就会有这title、name、fly 这三个属性。
需要说明的是例如expanderTitle,指的是html上元素的属性expander-title
如果不需要重命名,也可以直接忽略后面的定义

scope:{
    title:@title
}
//等于
scope:{
    title:@
}

其他的具体的请仔细搜索参考。
如果有不明白的可以继续留言,以上代码评论区手打,没实际运行验证。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号