javascript - angularJS指令如何暴露API给外面的controller使用?
伊谢尔伦
伊谢尔伦 2017-06-17 09:15:37
[AngularJS讨论组]
<button>expand</button>
<my-menu></my-menu>

我想点击按钮就展开menu,但怎么将menu的API暴露出来给button使用呢?
或者有没有其他更好的做法?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(3)
大家讲道理

不需要暴露什么API, 你只需要在指令上使用自定义属性进行数据双向绑定即可。
比如你需要显示隐藏,你就在指令上使用一个display属性,例如:

<my-menu display="someCtrlValue" ></my-menu>

然后在你的控制器中去控制这个值,比如

 if(condition){
   $scope.someCtrlValue = true;
 }
 

当然指令中你只需要指定双向绑定的属性即可;

 Module.directive("myMenu", function(){
   return {
       scope: {
           display : '='
       }
       ...
   }
 })
高洛峰

你可以在写my-menu指令的时候,指定一个双向绑定属性,比如collapse,然后通过<my-menu collapse="val"></my-menu>这样使用,然后通过button的ng-click事件控制val变量(true/false)就可以。然后在定义指令时,通过独立作用域实现双向绑定,可参考http://xgfe.github.io/2015/12...这篇文章

仅有的幸福

提供一个方法可以在指令中进行emit, 然后controller进行on监听
另外,一般指令是外部像内部传值 才能达到指令的灵活性 ,如果这样每次修改API不是得修改指令了?

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

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