ng-repeatに追加された新しい要素を背景色にアニメーション表示させるにはどうすればよいですか?しかし、私は、ページにロードされている既存の要素をアニメーションにしたくない。ボタンクリックイベントが発生したときに追加されたもののみ。新しいng-repeat要素を追加すると背景色をアニメーション化する方法は?
Index.htmlと
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular-animate.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
<div ng-app="app">
<main-component></main-component>
</div>
</body>
</html>
Script.js
console.clear();
function mainController() {
var model = this;
model.fields = [];
model.fields.push("field1");
model.fields.push("field2");
model.addField = function(label) {
console.log(label);
model.fields.push(label);
}
}
var app = angular.module('app', ['ngAnimate']);
app.component("mainComponent", {
template: `
<button ng-click="model.addField('New Field')">Add Field</button><br /><br />
<div class="field-container fadein" ng-repeat='f in model.fields track by $index'>{{f}}</div>
`,
controllerAs: "model",
controller: [mainController]
});
Styles.cssを
/* Styles go here */
.field-container {
width: 200px;
height: 80px;
border: 1px solid black;
background-color: yellow;
}
.fadein {
background-color: white;
transition: background-color 1000ms linear;
}
はい、そうです - これは簡単でしたが、どのようにして初期(作成済み)のフィールドをフェードインから得ることができますか?新しい明示的に追加されたフィールドをフェードインしたいだけです。 – RichC