Я работаю над проектом angularJS, и я оживляю между переходами состояния. Я использовал угловую вики в качестве руководства, в том числе это plunkr:Как отложить угловую анимацию до привязки модели
http://plnkr.co/edit/NsZhDL?p=preview
Я оживляющий от одного <table>
до следующего государства <table>
анимации (это слайд справа), работает нормально, но анимация пожаров до данные загружаются. Таким образом, одна строка заголовков сдвигается справа, а затем данные загружаются в <tr>
. В моем контроллере у меня есть вызов ajax, который идет и получает данные. Очевидно, что это происходит после того, как анимация загорелась. Есть ли способ убедиться, что данные загружены до анимации?
function CategoryList(/*dependencies*/) {
var controller = this;
//setup stuff
//get the data
$http.get('/My/Url', {
headers: {
ShowLoading: true
}
}).success(function (data, status, headers, config) {
controller.setCategories(data);
});
Одна вещь, которую я пытался в моем состояния объекта, заключается в использовании решимости пойти и получить данные, а затем вернуть обещание, но результат тот же. Вот эта попытка:
.state('myStateName', {
url: '/myUrl/{id:int}',
templateUrl: '/mytemplate.html',
controller: 'ListController',
controllerAs: 'List',
resolve: {
ajaxData: ['$q', '$http', '$stateParams', '$timeout',
function ($q, $http, $stateParams, $timeout) {
var deferred = $q.defer();
// $http returns a promise for the url data
$http.get('/Admin/Activities/Category/GetDetail/' + $stateParams.id, {
headers: {
ShowLoading: false
}
}).success(function (data) {
deferred.resolve(data);
}).error(function (data) {
deferred.reject();
});
return deferred.promise;
}]
}
Снова данные возвращаются в порядке, это происходит только после анимации. Я думал, что это будет работать, потому что в вики он говорит: «Каждый из объектов в решимости ниже должен быть решен (через deferred.resolve(), если они обещание) до того, как контроллер конкретизируется.» https://github.com/angular-ui/ui-router/wiki#resolve
редактировать После нескольких исследований я думаю, что ajax завершается до анимации, но привязка модели происходит после. Я считаю, что это текущая последовательность событий.
- Нажмите переход состояния линии
- Resolve пожары, получение данных от сервера
- Получить шаблон государства назначения в
- Анимируют новый шаблон в положение ([Ui-просмотр] -Enter болтовня)
- Привяжите новый шаблон к модели.
редактировать Это было проблемой CSS, минимальные высоты на сОн родительского стола была установлены на 1px, это вызвало TBODY не показывать, пока анимация не была закончена.
Как вы обжиг анимации? Я также опубликую об использовании решения. – ribsies
У меня есть селектор [ui-view] в моем файле css, а ngAnimate введен в мой модуль, и он работает так же, как этот пример plunkr. Я не совсем понимаю, как это работает, мне не нужно писать какой-либо код, чтобы сообщить анимации. Это просто какой-то угловой магический соус. Я новичок в угловом – SupremeDud