0

fa-animate-enter がどのように/いつ呼び出されるかについて、根本的な誤解があることは確かです。次のコードは、ボックスをクリックすると機能し、スケーリングしますが、fa-view がアクティブになると、クリックする必要はなく、fa-animate-enter も呼び出されると予想していました。ビューがアクティブになったときに、animateScale_enter() を呼び出すにはどうすればよいですか?

http://plnkr.co/edit/r2OSonPSvAQREAHvns7F

  <fa-view       fa-animate-enter="animateScale_enter()"
                 fa-animate-leave="animateScale_leave()"
                 fa-animate-halt="animateScale_halt()"  >
    <fa-modifier fa-origin="[0.5, 0.5]"
                 fa-align="[0.5, 0.5]"
                 fa-scale="scale.get()"
                 >
        <fa-surface fa-background-color="'#dc322f'"
                    fa-size="[100, 100]"
                    fa-click="animateScale_enter()"
                    >{{text}}
        </fa-surface>
    </fa-modifier>
  </fa-view>    

.js

<script>
  var app=angular.module('MyApp', ['famous.angular'])
   .controller('MainController', 
     function($scope, $famous) {

        var Transitionable = $famous['famous/transitions/Transitionable'];
        var SpringTransition = $famous['famous/transitions/SpringTransition'];
        Transitionable.registerMethod('spring', SpringTransition);

        $scope.viewType="view2";

        $scope.text="Scale=[1,1,1], click";
        $scope.scale = new Transitionable([1, 1, 1]);

        $scope.animateScale_enter = function() {
          console.log("enter");
          $scope.text="Scale=[2,2,1], enter";

          $scope.scale.set([2, 2, 1], {
            method: 'spring',
            period: 750,
            dampingRatio: 0.3
          });
        };          
        $scope.animateScale_leave = function() {
          console.log("leave");
        };          
        $scope.animateScale_halt = function() {
          console.log("halt");
          scope.transform.halt()
        };          
    }
  );
</script>
4

1 に答える 1

0

どうやらそれは ng-repeat に接続されており、私が収集したものから、dom の更新を強制するものはすべて... ??

そのため、ダミーの ng-repeat を fa-view に追加するだけで機能するようです。

<fa-view     ng-repeat="x in {x:1}"
             fa-animate-enter="animateScale_enter()"
             fa-animate-leave="animateScale_leave()"
             fa-animate-halt="animateScale_halt()"  >

誰かがこれを行うためのより良い方法を教えてくれることを願っています。私はこのようにそれをするだけで汚いと感じます。

于 2014-11-07T17:04:41.667 に答える