2016-09-21 18 views
0

したがって、Navは角度状態を使用しています。メニュー内の項目をクリックするたびに、頭の中の画像を変更する機能がトリガーされ、各ページのヘッダーに異なる画像が表示されます。これは、誰かがサイトのホームページで起動し、クリックするだけでナビゲートするときにうまく動作しますが、URLを入力すると機能は起動しません。私はonEnter()を使ってそれをトリガーし、クリックを落として両方の状況で動作するようにしようとしていますが、スコープの問題があり、実際にガイダンスを使用できるようです。ステート "onEnter"関数を使用してコントローラ内部の関数をトリガーする

app.directive("mainNav", function() { 
    return { 
     restrict: "E", 
     templateUrl: "js/main-nav.html", 
     controller: function() { 
     this.tab = tabbytab; 

     this.isSet = function(checkTab) { 
      return this.tab === checkTab; 
     }; 

     this.setTab = function(activeTab) { 
      tabbytab = activeTab; 
      window.fbAsyncInit(); 
     }; 
     this.imageArray = navImages; 
     //minus 1 because tabbytab starts at 1 and the array doesnt of course 
     this.currentImage = navImages[(tabbytab - 1)].image; 
     console.log(tabbytab); 
     this.setImage = function(activeTab) { 
      this.currentImage = this.imageArray[tabbytab].image; 
     }; 
    }, 
    controllerAs: "tab" 
}; 
}); 

そして、ここで私の状態は

.state('home', { 
     url: "/home", 
     templateUrl: "js/home.html", 
     onEnter: function() { 
      tab.setTab(1); 
      console.log("on enter function triggered"); 
     } 
    }) 

答えて

0

であるあなたはもう少しあなたが問題をスコープで何を意味するかを説明してもらえますか?正確には何が起こっているのですか?

少し複雑ではない別の方法は、$ routeParams https://docs.angularjs.org/api/ngRoute/service/を使用することです。基本的には、ルート(URL)からパラメータを取得し、URLに応じて画像を表示することができます。

+0

もちろん、見ていただきありがとうございます。私は入力時に私の設定されたタブ機能をトリガできることを期待していたが、それは間違ったルートだったと思うので、タブは私の$ stateProviderで定義されていないと言う。私が現時点でどの経路を使用しているかに応じて、経路の方法がページの内容を変更するためのより良い方法であるように見えます。ありがとう! – natedaswas

関連する問題