2016-05-12 7 views
0

Ich arbeite an angularjs App und möchte den Text der Schaltfläche basierend auf der Bedingung der ng-Wiederholung ändern.AngularJs - Willst du den Text der Taste auf der Basis von ng-wiederholen

Der Code ist:

<button class="save btn btn-inverse" data-ember-action="3432" style="margin-left: 380px" 
     type="submit" ng-disabled="editForm.$invalid || isSaving"> 
      Submit as <strong>{{vm.buttonText}}</strong> 
    </button> 

    <button class="btn btn-inverse dropdown-toggle" data-toggle="dropdown" ng-click="showDetails = ! showDetails"> 
      <span class="caret"></span> 
    </button> 

    <ul id="ember3445" class="ember-view menu dropdown-menu pull-right" ng-show="showDetails"> 
     <li id="status.id" class="ember-view open status _tooltip" ng-repeat="status in vm.ticketStatus" > 
       <a href="">Submit as <strong>{{status.status}}</strong></a> 
     </li> 
    </ul> 

Controller-Teil:

vm.ticketStatus = []; 
    vm.ticketStatus.push({id: 'ember3451', status: 'New'}, 
      {id: 'ember3452', status: 'Open'}, 
      {id: 'ember3453', status: 'Pending'}, 
      {id: 'ember3454', status: 'On hold'}, 
      {id: 'ember3455', status: 'Solved'}); 

    vm.buttonText; 
    vm.changeStatus = function (status){ 
     console.log("dsfdsfd"); 
     if(status != null){ 
      if(status == 'New'){ 
       vm.buttonText = 'New'; 
      } else if(status == 'Open'){ 
       vm.buttonText = 'Open'; 
      } else if(status == 'Pending'){ 
       vm.buttonText = 'Pending'; 
      } else if(status == 'On hold'){ 
       vm.buttonText = 'On hold'; 
      } else if(status == 'Solved'){ 
       vm.buttonText = 'Solved'; 
      } else { 
       vm.buttonText = 'New'; 
      } 
      return "" + vm.status; 
     } else{ 
      return 'New'; 
     } 
    }; 

Ich habe versucht, so etwas wie dies zu tun, aber es hat nicht funktioniert. Was ich will, ist, dass, wenn ich die ng-repeat-Bedingung als ausstehend (nur zum Beispiel) auswählen, sollte der Text der Schaltfläche zu Senden als ausstehend ändern.

Alle Arten von Hilfe ist willkommen, danke im voraus ...

+0

Wie sollte gewählt werden, der Status? Durch Klicken auf die 'Submit as {{status.status}}'? –

+0

können Sie ein PLNKR erstellen? – Maverick

+0

Und was meinst du wenn du sagst auswählen? Wie sollte es ausgewählt werden? – Maverick

Antwort

1

Es gibt keine expliziten Aufruf der Änderungsfunktion war.

Plunker Gelöst: https://plnkr.co/edit/gWhfUCCh1doYVp0vzown

Html:

<div ng-controller="Ctrl"> 
    <button class="save btn btn-inverse" data-ember-action="3432" style="margin-left: 380px" type="submit"> 
     Submit as   <strong>{{vm.buttonText}}</strong> 
    </button> 
    <ul> 
    <li id="status.id" class="ember-view open status _tooltip" ng-repeat="status in vm.ticketStatus"> 
     <a href="" ng-click="vm.changeStatus(status.status)">Submit as    <strong>{{status.status}}</strong> 
     </a> 
    </li> 
    </ul> 
</div> 

Controller:

function Ctrl($scope) { 
$scope.vm = {}; 
$scope.vm.ticketStatus = []; 
$scope.vm.ticketStatus.push({id: 'ember3451', status: 'New'}, 
      {id: 'ember3452', status: 'Open'}, 
      {id: 'ember3453', status: 'Pending'}, 
      {id: 'ember3454', status: 'On hold'}, 
      {id: 'ember3455', status: 'Solved'}); 

$scope.vm.buttonText; 
$scope.vm.changeStatus = function (status){ 
     console.log("dsfdsfd"); 
     if(status !== null){ 
      if(status == 'New'){ 
       $scope.vm.buttonText = 'New'; 
      } else if(status == 'Open'){ 
       $scope.vm.buttonText = 'Open'; 
      } else if(status == 'Pending'){ 
       $scope.vm.buttonText = 'Pending'; 
      } else if(status == 'On hold'){ 
       $scope.vm.buttonText = 'On hold'; 
      } else if(status == 'Solved'){ 
       $scope.vm.buttonText = 'Solved'; 
      } else { 
       $scope.vm.buttonText = 'New'; 
      } 
      return "" + vm.status; 
     } else{ 
      return 'New'; 
     } 
    }; 
} 
+0

danke es hat funktioniert –

Verwandte Themen