ng-style
の中にあるときにtransform
を動作させることができませんでした。
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<script data-require="[email protected]" src="http://code.angularjs.org/1.2.13/angular.js" data-semver="1.2.13"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<div style="transform: rotate(3deg);-webkit-transform: rotate(3deg);-ms-transform: rotate(3deg)">Test</div>
<div ng-style="{"transform": "rotate({{number}}deg)", "-webkit-transform": "rotate({{number}}deg)", "-ms-transform": "rotate({{number}}deg)"}">{{number}}</div>
<input type="number" ng-model="number" value=1>
</body>
</html>
リンク: http://plnkr.co/edit/txSzAKxLDq48LVitntro?p=preview
input
番号を変更すると、最上位のdivが変更され、spinも同時に変更されます。値が3の場合、WordTestのようになります。
この場合、transform
を機能させるにはどうすればよいですか?
ありがとう。
属性内のJS文字列内で中括弧バインディングを使用することはできません。代わりに、変数を文字列に追加できます。
<div ng-style="{'transform': 'rotate('+number+'deg)', '-webkit-transform': 'rotate('+number+'deg)', '-ms-transform': 'rotate('+number+'deg)'}">{{number}}</div>
また、私はあなたの二重引用符を単一に置き換えました。
ただし、適切なスタイルを返すために、コントローラーに関数を追加することを検討する場合があります。
コントローラー:
// Create a variable to store the transform value
$scope.transform = "rotate(0deg)";
// When the number changes, update the transform string
$scope.$watch("number", function(val) {
$scope.transform = "rotate("+val+"deg)";
});
HTML:
<!-- We can now use the same value for all vendor prefixes -->
<div ng-style="{'transform': transform, '-webkit-transform': transform, '-ms-transform': transform }">{{number}}</div>