【问题标题】:Binding Angular data after a jQuery animation在 jQuery 动画之后绑定 Angular 数据
【发布时间】:2014-03-07 16:05:36
【问题描述】:

我正在运行一个 jQuery 动画,之后我需要更新动画元素内的数据值。

由于某种原因我不能这样做

$scope.myVar = "START";

$("#div").delay(100).animate({
    top: '50px'
}, {
    duration: $scope.speed,
    easing: $scope.ease,
    complete: function () {
        $scope.myVar = "FINISHED";
    }
});

当记录变量时,它会更新;但是,这不会反映在屏幕上。

【问题讨论】:

    标签: javascript jquery angularjs jquery-animate


    【解决方案1】:

    您需要使用$scope.apply。 来自角度文档

    $apply() 用于从外部以角度执行表达式 角度框架。 (例如来自浏览器 DOM 事件, setTimeout、XHR 或第三方库)

    【讨论】:

    • 感谢(非常)快速的回复。这似乎是一个新手问题,所以希望它可以帮助其他人。
    【解决方案2】:

    我通常使用 $timeout:

    $timeout(function () {
      //$scope.myvar = "FINISHED";
    }, 0);
    

    它有效,但我不知道它有多优雅......

    【讨论】:

      猜你喜欢
      • 2012-11-12
      • 1970-01-01
      • 2016-04-02
      • 1970-01-01
      • 2010-09-22
      • 2018-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多