Próbuję zrobić ładne przejście fadein + fadein po zmianie currentVertical. w nokaut był tak prosty, ale nie mogę tego rozgryźć tutaj. proszę pomóż.Angular JS - Jak mogę animować zmiany modelu?
poniższy kod wyświetla listę UL, która jest "związana" z tablicą cenników w polu $ scope.currentVertical po kliknięciu elementu LI, zmienna $ scope.currentVertical zostaje zmieniona, a lista UL aktualizowana odpowiednio. Działa to dobrze, ale chciałbym, aby cały element div #container znikał i znikał, gdy zmieniono wartość $ scope.currentVertical. Proszę o pomoc ...
Moje html:
<body>
<h1>Pricing Poll</h1>
<div ng-controller="VerticalsController">
<div id="container">
<h2>{{currentVertical.title}}</h2>
<ul>
<li ng-repeat="pricing in currentVertical.pricings">
<a ng-click="currentVertical.selectPricing(pricing)">{{pricing.name}}</a>
</li>
</ul>
</div>
</div>
</body>
mój javascript:
function VerticalsController($scope) {
$scope.verticals = [
{
title:'internet',
pricings: [
{
name: 'netvision',
monthly: 23
},
{
name: 'hot',
monthly: 33
},
{
name: '012',
monthly: 28
}
]
},
{
title:'cellular',
pricings: [
{
name: 'cellcom',
monthly: 20
},
{
name: 'pelephone',
monthly: 30
},
{
name: 'orange',
monthly: 25
}
]
},
{
title:'banks',
pricings: [
{
name: 'leumi',
monthly: 20
},
{
name: 'poalim',
monthly: 30
},
{
name: 'benleumi',
monthly: 25
}
]
}];
$scope.selected = [
];
$scope.currentIndex = 0;
$scope.currentVertical = $scope.verticals[0];
$scope.selectPricing = function(pricing) {
$scope.selected.push(pricing);
$scope.currentIndex++;
$scope.currentVertical = $scope.verticals[$scope.currentIndex];
};
/*$scope.remaining = function() {
var count = 0;
angular.forEach($scope.todos, function(todo) {
count += todo.done ? 0 : 1;
});
return count;
};*/
}
Czy istnieje powód dlaczego UI-blaknięcie-przełącznik do 'visible' ustawić? Nie możesz po prostu ustawić go jawnie na 'visible', jak np.' $ Scope. $ Watch ('visible', function() {}) 'ponieważ' $ scope.visible' nie ma być w najbliższym czasie zmieniane. – Hengjie
Dyrektywy zwykle nie opierają się na konwencjach nazewnictwa w zakresie nadrzędnym, więc można użyć kilkukrotnie tej samej dyrektywy w tym samym zakresie (na przykład jeden związany z widocznym1, drugi z widocznym2). – Guillaume86
To dobre, ale przestarzałe podejście, ponieważ Angular obsługuje teraz animacje natywnie za pomocą nowej dyrektywy o nazwie ngAnimate. –