2016-04-23 122 views
0

所以我已經搜索了這個問題,但他們的答案沒有解決我的,所以我創造了一個新的話題。我想獲得標籤中的文字,即(獨唱/伴奏)。如何知道哪個「a」標籤被點擊? AngularJs的方式

這是我的site.html內:

<a href="#/app/partnerlistt" style="text-decoration:none"> 
    <div class="va-container"> 
      <div class="col va-btn"><b>partner</b></div> 
      </div> 
</a> 


<a href="#/app/sololist" style="text-decoration:none"> 
     <div class="va-container"> 
     <div class="col va-btn"><b>solo</b></div> 
      </div> 
</a> 

這是什麼在我的controller.js:

var encodedString = 'action=' + 
    encodeURIComponent("Showsomething") + 
    '&position=' + 
    encodeURIComponent("solo/partner");//this is where my clicked a tag should be passed 

回答

1

使用角$state.go('state');

提供$state服務(當你使用SPA推薦)定義你的路由更好。不要在AngularJS中使用硬編碼散列。

angular 
    .module('myApp') 
    .config(function ($stateProvider) { 
     $stateProvider 
     .state('partner', { 
     url:'/app/partnerlistt', 
     templateUrl: 'views/modals/partner.html' 
     }) 
     .state('solo',{ 
     url:'/app/sololist', 
     templateUrl: 'views/modals/solo.html' 
     }); 
}); 

有無合作伙伴和獨奏的HTML文件夾目錄views/modals

HTML:

<a ng-click="navigateTo('partner')" style="text-decoration:none"> 
</a> 
<a ng-click="navigateTo('solo')" style="text-decoration:none"> 
</a> 

相應的控制器:注射$state服務

$scope.navigateTo = function(to) { 
    $state.go(to); 
    var encodedString = 'action=' + 
    encodeURIComponent("Showsomething") 
    + '&position=' + 
    encodeURIComponent(to); 
}; 
+0

你有一個好點..但這種狀態是在我的服務..所以我只想要最簡單的事情如何傳遞單詞和合作夥伴,因爲不需要更改標籤中的href屬性 –

+0

在您的控制器中注入服務,並在您的服務中具有返回狀態的函數。現在使用如下方法:'myService.getStates()'從服務中檢索狀態。 – softvar

+0

如果我將合作伙伴和獨奏的控制器分開,效率會如何? :D這是我唯一的解決方案hahaha –

2

在你的HTML:

<a ng-click="go('partner')" style="text-decoration:none"> 
</a> 
<a ng-click="go('solo')" style="text-decoration:none"> 
</a> 

在您的控制器:

$scope.go = function(goTo) { 
    // do the hash redirect 
    window.location.hash = '#/app/' + goTo + 'list'; 
    // Here you can use the goTo parameter 
    var encodedString = 'action=' + 
    encodeURIComponent("Showsomething") 
    + '&position=' + 
    encodeURIComponent(goTo); 
} 

更妙的是當你動態加載鏈接:

控制器:

$scope.links = ['solo', 'partner']; 

HTML:

<div ng-repeat="link in links"> 
    <a ng-click="go(link)"> 
    {{link}} 
    </a> 
</a> 
+0

我試圖出來..我會馬上回答解決我的問題的答案:) –

+0

它給予米e數據錯誤:encodedString,... ReferenceError:encodedString沒有定義 –

0

你可以用小的變化來完成它在你的代碼

<a ng-click="goTo('#/app/partnerlistt', 'partner');" style="text-decoration:none"> 
     <div class="va-container"> 
       <div class="col va-btn"><b>partner</b></div> 
       </div> 
    </a> 


    <a ng-click="goTo('#/app/sololist', 'solo');" style="text-decoration:none"> 
      <div class="va-container"> 
      <div class="col va-btn"><b>solo</b></div> 
       </div> 
    </a> 

JS

$scope.goTo = funtion(url, type){ 
    console.log(type); 
    $window.location.href= url; 
}; 
相關問題