jQuery可调整大小,带有角度ng样式';行不通
我无法调整jquery的大小以使用Angular和ng样式。我知道在创建可调整大小的元素时必须指定高度和宽度,但正如您从下面的JSFIDLE中看到的,任何ng样式似乎都会被忽略,并且没有应用高度或宽度jQuery可调整大小,带有角度ng样式';行不通,jquery,angularjs,jquery-ui,jquery-ui-resizable,Jquery,Angularjs,Jquery Ui,Jquery Ui Resizable,我无法调整jquery的大小以使用Angular和ng样式。我知道在创建可调整大小的元素时必须指定高度和宽度,但正如您从下面的JSFIDLE中看到的,任何ng样式似乎都会被忽略,并且没有应用高度或宽度 <div ng-controller="myCtrl"> <img resizable src="http://lorempixel.com/400/200/" ng-style="{'width':'400px', 'height':'200px'}"/>
<div ng-controller="myCtrl">
<img resizable src="http://lorempixel.com/400/200/"
ng-style="{'width':'400px', 'height':'200px'}"/>
</div>
但是,如果我将ng样式替换为style,则效果很好(如下所示)
知道我该如何解决这个问题吗?将ngStyle传递给您的指令,并在指令中设置css
app.directive('resizable', function () {
return {
restrict: 'A',
scope: {
callback: '&onResize',
ngStyle : '=ngStyle'
},
link: function postLink(scope, elem, attrs) {
elem.css(scope.ngStyle);
elem.resizable();
elem.on('resizestop', function (evt, ui) {
if (scope.callback) { scope.callback(); }
});
}
};
});
原因:编译指令resizeble时,元素的宽度和高度为零。您可以通过在resizeble指令中调用elem.css('width')来检查这一点
app.directive('resizable', function () {
return {
restrict: 'A',
scope: {
callback: '&onResize',
ngStyle : '=ngStyle'
},
link: function postLink(scope, elem, attrs) {
elem.css(scope.ngStyle);
elem.resizable();
elem.on('resizestop', function (evt, ui) {
if (scope.callback) { scope.callback(); }
});
}
};
});
将ngStyle传递给指令,并在指令中设置css
app.directive('resizable', function () {
return {
restrict: 'A',
scope: {
callback: '&onResize',
ngStyle : '=ngStyle'
},
link: function postLink(scope, elem, attrs) {
elem.css(scope.ngStyle);
elem.resizable();
elem.on('resizestop', function (evt, ui) {
if (scope.callback) { scope.callback(); }
});
}
};
});
原因:编译指令resizeble时,元素的宽度和高度为零。您可以通过在resizeble指令中调用elem.css('width')来检查这一点
app.directive('resizable', function () {
return {
restrict: 'A',
scope: {
callback: '&onResize',
ngStyle : '=ngStyle'
},
link: function postLink(scope, elem, attrs) {
elem.css(scope.ngStyle);
elem.resizable();
elem.on('resizestop', function (evt, ui) {
if (scope.callback) { scope.callback(); }
});
}
};
});
通常ng样式值将是范围变量
$scope.myStyle={'width':'400px','height':'200px'}
并且您可以在ngStyle中使用该变量
<div ng-controller="myCtrl">
<img resizable src="http://lorempixel.com/400/200/" ng-style="myStyle"/>
</div>
Ref:通常ng样式值将是范围变量
$scope.myStyle={'width':'400px','height':'200px'}
并且您可以在ngStyle中使用该变量
<div ng-controller="myCtrl">
<img resizable src="http://lorempixel.com/400/200/" ng-style="myStyle"/>
</div>
Ref:这是一个输入错误……如果你检查小提琴,你会发现我使用了正确的语法和引号。在我的实际代码中,我使用范围变量,但为了简单起见,我将其内联。我不认为这会有什么不同。有什么想法吗?如果我使用范围变量或是内联编写样式,应该不会有什么区别,对吗?它看起来与原始样式相同…你做了任何更改吗?谢谢,但当我按run时图像不会显示…这与我在原始帖子中所说的行为相匹配。它仍然忽略了ng-style。这是一个输入错误…如果你检查小提琴,你会发现我使用了正确的语法和引号。在我的实际代码中,我使用范围变量,但为了简单起见,我将其内联。我不认为这会有什么不同。有什么想法吗?如果我使用范围变量或是内联编写样式,应该不会有什么区别,对吗?它看起来与原始样式相同…你做了任何更改吗?谢谢,但当我按run时图像不会显示…这与我在原始帖子中所说的行为相匹配。它仍然忽略了ng风格。这太棒了,谢谢。它与ng style=“{'width':'280px','height':'180px'}”完美配合,但如果我执行类似于ng style=“getLayerStyle(sceneLayer)”的操作,只要函数返回json对象,我想我们就不会有任何问题。我试图用ngstyle的功能重现这个问题,但对我来说效果很好。这是,太好了,谢谢。它与ng style=“{'width':'280px','height':'180px'}”完美配合,但如果我执行类似于ng style=“getLayerStyle(sceneLayer)”的操作,只要函数返回json对象,我想我们就不会有任何问题。我试图用ngstyle的功能重现这个问题,但对我来说效果很好。这是