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