2016-04-25 13 views
3

Angsularプロジェクトで動作するAnimsitionプラグインを取得しようとしています。 ローダーが停止していて、ビューが読み込まれません。jQueryプラグインがAngular Router(Animation)で動作しません

jQueryプラグインは指示文にあり、Angularルーティングなしで別のHTMLファイルとして機能します。しかし、私は角度ルータで動作するようにしたい。

loadingParentElement : 'body', 
overlayParentElement : 'body', 

(そして、それはソースにヘッド/ボディ/スクリプトタグとルータ+独立した完全なHTMLファイルをせずにうまく働いたが、別のビューとして、私はそれぞれの変更:

は//ディレクティブでは、デフォルトではなかったです。彼らは親のbody要素を務めた。しかし、まだ動作しませんでしたと仮定すると、親の主な要素を持っているビュー。

app.js

var app = angular.module('MyApp', ['ngRoute']); 

app.config(function($routeProvider, $locationProvider) { 
    $routeProvider 
    .when('/', { 
    templateUrl: 'partials/home.html', 
    controller: 'AppCtrl', 
    }) 
    .when('/work', { 
    templateUrl: 'partials/work.html', 
    controller: 'AppCtrl', 
    }) 
    .otherwise({ 
    redirectTo: '/' 
    }); 
}); 

// the directive 
app.directive('ngAnimsition', [function() { 
    return { 
    restrict: 'A', 
    scope: { 
     'model': '=' 
    }, 
    link: function(scope, elem, attrs) { 
     var $animsition = $(elem); 
     $animsition.animsition({ 
     inClass: 'fade-in', 
     outClass: 'fade-out', 
     inDuration: 1500, 
     outDuration: 800, 
     linkElement: '.animsition-link', 
     loading: true, 
     loadingParentElement: 'main', //animsition wrapper element 
     loadingClass: 'animsition-loading', 
     loadingInner: '', // e.g '<img src="loading.svg" />' 
     timeout: false, 
     timeoutCountdown: 5000, 
     onLoadEvent: true, 
     browser: [ 'animation-duration', '-webkit-animation-duration'], 
     overlay : false, 
     overlayClass : 'animsition-overlay-slide', 
     overlayParentElement : 'main', 
     transition: function(url) { 
      window.location.href = url; 
     } 
     }); 
    } 
    } 
}]); 

のindex.htmlファイル

<!DOCTYPE html> 
<html class="no-js" ng-app="MyApp"> 
    <head> 
     <meta charset="utf-8"> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
     <title>Getting Animsition jQuery + Angular Router</title> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <!--CSS--> 
     <link rel="stylesheet" href="css/normalize.min.css"> 
     <link rel="stylesheet" href="js/animsition/animsition.min.css"> 
     <link rel="stylesheet" href="css/main.css"> 
    </head> 
    <body ng-controller="AppCtrl"> 

     <!-- ng-router --> 
     <div ng-view></div> 

     <!-- tried below, but only does animsition on first load, not changing between views --> 
     <!-- <div ng-animsition class="animsition"> 
      <!-- <div ng-view></div> 
     <!-- </div> 

     <!-- jquery --> 
     <script src="js/jquery/jquery.min.js"></script> 
     <script src="js/animsition/jquery.animsition.min.js"></script> 

     <!-- Angular --> 
     <script src="js/angular/angular.min.js"></script> 
     <script src="js/angular/angular-router.min.js"></script> 
     <script src="js/app.js"></script> 

    </body> 
</html> 

部分home.html

<main> 
    <div ng-animsition class="row container animsition"> 
     <nav> 
      <a ng-href="#/" class="active animsition-link">Home</a> 
      <a ng-href="#/work" class="animsition-link">Work</a> 
     </nav> 
     <div> 
      <h1>Home</h1> 
     </div> 
    </div> 
</main> 

部分work.html

<main> 
    <div ng-animsition class="row container animsition"> 
     <nav> 
      <a ng-href="#/" class="animsition-link">Home</a> 
      <a ng-href="#/work" class="active animsition-link">Work</a> 
     </nav> 
     <div> 
      <h1>Work</h1> 
     </div> 
    </div> 
</main> 
+0

ここに同じ問題があります – cesarluis

+0

まだ解決されていますか?その下に管理用テンプレートを使用していますか? –

答えて

0

また、私はこの問題を得た、と私はそれがこのコードを使用して動作させる、あなたはそれを試してみましたができ

transition: function(url){ 
     if(url){ 
      window.location.href = url; 
     } 
     else{ 
      location.reload(); 
     } 
    } 
関連する問題