1

当我从指定页面加载当前页面时,我想将其更改为ng-init = "tab=1": http: //191armyband.com/career.html。这可以通过使用 jQuery 的条件函数来实现吗? 我已经使用 document.referrer 来获取之前的 url。这是我的小提琴:ng-init = "tab=2"

http://jsfiddle.net/humorean/g2aaxc0e/4/

4

2 回答 2

1

这是 javascript 代码,我使用并使用了 ng-controller 而不是 ng-init 来让它工作:

// declare a module
var contactModule = angular.module('contactModule', []);
contactModule.controller('panelCtrl',function(){
var prevUrl = document.referrer; //set prevUrl equal to the previous url that loads current page

if(prevUrl === "http://191armyband.com/career.html"){ //test if previous url was career.html
this.tab =2; //If previous url that loads this page is career.html then ng-init = tab 2
} else{
this.tab =1; //If previous url that loads this page is NOT career.html then ng-init = tab 1
};

this.selectTab = function(passInTab){
this.tab = passInTab; //SET this.tab value equal to whichTab where  html can PASS IN a passInTab value
};

this.isSet = function(chosenTab){
return this.tab === chosenTab;  //return this.tab value when this.tab value equal to chosenTab
};

});

这是HTML

<body>
<div data-role="page">
<div class="navigatorTab">
<ul id="mainUl" class="nav nav-tabs">
<li ng-class="{active:panel.isSet(1)}"><a href ng-click="panel.selectTab(1)">General Inquery</a></li>
<li ng-class="{active:panel.isSet(2)}"><a href ng-click="panel.selectTab(2)">Request For Audition</a></li>
<li ng-class="{active:panel.isSet(3)}"><a href ng-click="panel.selectTab(3)">Request The Band</a></li>
</ul>     
</div>
<div id="generalInquery" ng-show="panel.isSet(1)">
<h3 class="contactHeader">Contact Us:</h3>    
</div>

<div id="Audition" ng-show="panel.isSet(2)">
<h3 class="contactHeader">Request for Audition:</h3>
</div>

<div id="requestBand" ng-show="panel.isSet(3)">
<h3 class="contactHeader">Request The Band:</h3>
</div>
</div>
</div></body>
</html>
于 2015-08-24T07:48:03.117 回答
0

你的问题不会得到很好的答案,因为你的方法都是错误的。

您应该坚持使用已注释掉的控制器,而不是使用 jquery onready 的东西。然后在您的控制器中,根据您的逻辑将“tab”属性设置为您想要的。

阅读 Angular 应用程序的基础知识并尝试从中学习,而不是使用 jquery 来破解你的前进道路

于 2015-08-23T23:10:43.890 回答