angular directive详解之scope

scope是控制directive中的变量与引用directive的controller之间的关系的重要属性。其有四种修饰符

  • =表示共享某个变量 Two-way model binding
  • &表示共享某个方法(回调) Callback method binding
  • @表示传递某个值 Attribute string binding

如果不写scope,默认与controller共享scope

例:


contoler数据:{{myData}}

点击改变按钮时,contorller和diretive中的myData都变成了ha ha ha。共享scope时(即不隔离),diretive可以完全使用,覆盖controller的变量和方法,反之也一样。当然这样在实际项目中会造成灾难性的影响,官方也不建议这样做。英文原文是: This is clearly not a great solution.

scope:{},即最简单的隔离,contoller和directive使用完全不同的scope,互不影响.



contoler数据:{{myData}}

controller中的myData和directive中的myData不同,点击改变按钮也没用。

=示例



contoler数据:{{myData}}

点击改变按钮,controller和directive的myData都变成了ha ha ha;

@示例



contoler数据:{{myData}}

此例中,directive的myData值为ba ba ba。点击改变按钮,directive的myData为ha ha ha,controller的myData不受影响。

&示例:



contoler数据:{{myData}}

点击改变按钮,controller的myData变成ha ha ha。directive的myData不受影响。 注意directive中调用共享的方法的时候,传值是一个object, key为参数名.



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部