在AngularJs中使用jqueryUi.resizeable()

我在我的一个模板中有一个DOM元素,我想使用jqueryUiresize。 长和短是我的模板中有一个名为“test”的

元素….除此之外,我尝试添加脚本实际上在多个地方进行大小调整,但我已经完全扭转了局面。

我曾经想过一个指令可能是正确的事情……或者因为我使用jqueryui而不是真正的角度类型的东西,我可以通过将脚本放入我的模板或控制器……但他们到目前为止,由于多种原因,我都失败了…

无论如何..回到原点……

angularJs应用程序中,如何实际实现jqueryui库中的resizable()function。

作为补充,我已经看了下面的答案,并编写了以下代码:

HTML:

 
Test

指示:

 angular.module('tffullscreen.directives'). directive('resizable', function() { return { restrict: 'A', scope: { callback: '&onResize' }, link: function postLink(scope, elem, attrs) { elem.resizable(); elem.on('resizestop', function (evt, ui) { if (scope.callback) { scope.callback(); } }); window.e = elem; } }; }); 

控制器:

 $scope.resize = function () { console.log("RESIZED FUNCTION CALLED IN CONTROLLER"); }; 

这里的问题是,这是在加载模板时在我的屏幕上呈现的内容:

 
Test

这看起来像我应该看到的…除了我在窗口中看到的所有单词test没有resize框可见…当我检查添加到DOM的元素时,所有这些元素都有宽度但是0高度。

对于这样的东西,指令总是正确的方法。
要使元素可resize(使用可选的回调),您应该实现如下指令:

 app.directive('resizable', function () { var resizableConfig = {...}; return { restrict: 'A', scope: { callback: '&onResize' }, link: function postLink(scope, elem) { elem.resizable(resizableConfig); elem.on('resizestop', function () { if (scope.callback) scope.callback(); }); } }; }); 

然后,在HTML中:

 
Hello, world !

如果需要不同的可resize的配置,可以使用属性将其传递给隔离范围。


另见这个简短的演示