2016-05-12 2 views
0

Я работаю над приложением angularjs и хочу изменить текст кнопки, основываясь на состоянии ng-repeat.AngularJs - Хотите изменить текст кнопки на основе ng-repeat

Код:

<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> 

часть Контроллера:

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'; 
     } 
    }; 

Я пытался сделать что-то вроде этого, но оно не сработало. Я хочу, чтобы, когда я выбираю условие ng-repeat как ожидающее (например, например), текст кнопки должен измениться на Submit как на ожидании.

Все виды помощи ценится, заранее спасибо ...

+0

Как следует выбрать статус? Нажав на кнопку 'Submit as {{status.status}}'? –

+0

Вы можете создать plnkr? – Maverick

+0

И что вы имеете в виду, когда говорите, выберите? Как его выбрать? – Maverick

ответ

1

Там не было явного вызова функции изменения.

решаемые Plunker: 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> 

Контроллер:

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

спасибо, что это сработало –

Смежные вопросы