2

我想在每次数据更改和每个窗口的调整大小事件时动态截断文本。

假设我有一个 HTML:

<p ng-truncate='lines: 2'> Lorem ipsum dolor...</p>

我的指令进行了截断,但在调整窗口大小时仍然缺少重新截断。

angular.module('moduleName', [])
  .directive 'ngTruncate', () ->
    link: (scope, element, attributes) ->
      // Direcive code here
      $(window).on 'resize', ->
        scope.$apply()
        scope.$digest()

不幸的是$apply,,也不$digest()行。

此外,我相信我应该$window以某种方式使用......

4

2 回答 2

1

$scope在您致电$apply$digest调整大小之前,可能没有任何变化。

最好添加一些功能,例如:

function onWindowChange() {
    // do some changes to any 
    // attributes of scope
    // and than apply them
    scope.$digest()
}

// and call it on window resize
$window.resize(onWindowChange);

或者你可能有一个函数会改变任何范围属性,你调用许多不同的事件,$scope.$watch这个属性和更改调用$scope.$digest

如果您在此处发布整个指令代码,也许会更容易回答......

于 2013-06-12T05:30:33.283 回答
0

是的 - 您可以使用该$window属性来监视窗口大小的变化。

这是一个小提琴

可以在此处找到原始讨论(从中挑选小提琴)

于 2013-06-12T05:07:21.097 回答