所以我的导航使用角度状态。每当您单击菜单中的某个项目时,它会触发一个更改头部图片的功能,以便每个页面标题上都有不同的图片。当有人在网站的主页上启动并仅通过点击导航时,这种方法很有效,但是当您输入网址时,该功能不会被触发。我正在尝试使用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 :(得分:0)
您能否通过范围问题更多地解释一下您的意思?究竟是怎么回事?
另一种可能稍微复杂一点的方法是使用$ routeParams https://docs.angularjs.org/api/ngRoute/service/。基本上,您可以从路径(url)中提取参数并根据URL显示图像。