код ссылки DartAnonymous функция обратного вызова JSObject не обновляется Dart контроллер до окончания действия пользователя
class LandingController {
bool hideDiv = false;
void doit() {
new JsObject(context['loginControls']).callMethod('fadeLogin', [() {
print(hideDiv);
hideDiv = true;
print(hideDiv);
print("WTF");
}]);
}
}
который вызывает JS:
var loginControls = function() {
this.fadeLogin = function(func) {
$('#landingHeader').animate({ opacity: 0 }, 500, func);
}
};
, которые должны повлиять на вид:
<button ng-click="doit();">Click</button>
<div id="landingHeader">Hide me after button click</div>
<div ng-if="ctrl.hideDiv == false"><img src="assets/img/ajax-loader-small.gif">Waiting for div to disappear...</div>
После нажатия кнопки и 500 миллиметров cond delay Я вижу в своей консоли «WTF» правильно печатать. Тем не менее, div
все еще виден. Как только действие пользователя происходит, в моем случае щелчок мыши, div
волшебным образом исчезает. Кажется, что значение контроллера изменено, но браузер не получает изменения, чтобы скрыть div, так как я напечатал значение контроллера в анонимном обратном вызове.
Работает вокруг, но включает в себя настройку таймера Дарта на те же самые времена затухания, которые вы используете в javascript после вызова JsObject
и установки значений вашего контроллера в этих обратных вызовах таймера - брутто, но он работает.
Это сработало. Очень глупо меня забыть о 'scope.apply()', но я постоянно это делаю. Надеюсь, это поможет кому-то. Как в стороне, пока я использую его только для анимации, это всего лишь макет сайта и может быть расширен в будущем. Я провел некоторое исследование по этому вопросу и нашел [пакет пабов для анимаций] (https://pub.dartlang.org/packages/animation), но раздел недостающих функций отвлек меня от него. – Squiggler
Вы знаете о поддержке анимации Angular.darts? https://www.youtube.com/watch?v=EqilB8nJ6gE –
Ну, черт побери. Похоже, у меня есть рефакторинг! Благодаря!! – Squiggler