我想在每次数据更改和每个窗口的resize事件上动态截断文本。
让我们说我有一个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
......
答案 0 :(得分: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);
或者你可能会有改变的功能
任何范围attr,你呼吁许多人
不同的事件,$scope.$watch
这个attr
并在变更时致电$scope.$digest
。
如果你在这里贴出整个指令代码,也许会更容易回答......
答案 1 :(得分:0)