Angular.js:观察一个对象的高度并更新其他对象的填充

时间:2013-02-28 15:44:10

标签: events resize angularjs

我可以在指令中查看一个对象的属性(实际上是 - clientHeight)。但是如何根据这个高度更改其他对象的填充顶部?我知道如何使用jQuery,但我正在寻找一种Angular方式。

在Angular中,可以使用指令访问某些页面元素。好的,但是如何访问同一指令中的其他页面元素?

1 个答案:

答案 0 :(得分:5)

有很多方法可以做到这一点。对于下面的所有建议,假设您有两个指令 - 一个用于观察clientHeight,另一个用于调整填充。

  • 创建服务(注入两个指令)。让第一个指令修改服务中的对象属性(例如,someObj.prop1)。另一个指令$监视该对象属性。
  • 使用活动。让第一个指令$ emit或$ broadcast一个事件,第二个指令可以使用$ on(在其链接函数或其自己的控制器中)监听它。
  • 如果存在祖先关系,则可以在后代指令中require祖先指令的控制器。有关示例,请参阅AngularJS: reuse component with different parent

  • 不推荐,但另一种选择:使用$ rootScope而不是服务:将$ rootScope注入两个指令。让第一个指令修改$ rootScope上的对象属性。另一个指令$监视该对象属性。