2015-07-24 1 views
0

J'ai le fil d'Ariane implémenté dans mon application et ça marche bien quand je navigue vers les pages via la barre de navigation, ci-dessous j'ai un bouton sur ma page lorsque je clique sur ce bouton le fil d'Ariane ne fonctionne pas , comment puis-je appeler l'état sur la fonction cnaRsk et faire le fil d'Ariane?comment utiliser les fils d'Ariane sur ng-clic?

main.html

<button require-control-point="RISK_ADD;ALIGN_RISK_ADD" 
      class="btn btn-default pull-right " type="button" ng-click="cnaRsk()">Create 
      And Align New Risk</button> 

main.js

$scope.cnaRsk = function() { 
     $location.path('/risk/cnaRsk/' + $scope.processDTO.processKey); 
    }; 

app.js

.state('app.editRiskProcess', { 
      url: '/risk/create/:processId', 
      templateUrl: 'views/risk/createNewRisk.html', 
      controller: 'RiskCtrl', 
      data: { 
       authenticate: true 
      }, 
      breadcrumb: { 
       title: 'riskInProcess :processId', 
       path: ['app.home', 'app.editProcess', 'app.editRiskProcess'] 
      } 
     }) 

Répondre

1

Puisque vous utilisez ui-routeur vous ne devez jamais utiliser $ emplacement. Utilisez $ state.go et ui-sref à la place.

Vous pouvez changer votre état sur un clic sur votre HTML en ajoutant la directive ui-Sref:

<button require-control-point="RISK_ADD;ALIGN_RISK_ADD" 
     class="btn btn-default pull-right " 
     type="button" 
     ui-sref="app.editRiskProcess({processId:processDTO.processKey})"> 
     Create And Align New Risk 
</button> 

Ou si vous voulez déclencher un changement d'état dans votre contrôleur, vous pouvez utiliser:

$state.go("app.editRiskProcess",{processId:$scope.processDTO.processKey}); 

AVERTISSEMENT Rappelez-vous que la fonction de thèses doit être lu comme ceci:

ui-sref="statename({stateParamName:myvar})" 

$state.go("statename",{stateParamName:myvar}); 

J'espère que cela a aidé.

+0

merci cela a fonctionné – aftab