AngularJS - Как получить объект по нажатию кнопки - PullRequest
0 голосов
/ 25 октября 2018

У меня есть массив объектов.Я отображал имена в полях ввода.Теперь я хочу, чтобы обновленный объект (независимо от того, что пользователь заполняет поле ввода) при нажатии кнопки

Пример, если я ввожу «abcde» и «pq» в поле ввода, он должен показывать объект обновления на кнопкенажмите

[
    {
      name:'abcde’
    },
    {
      name:'pq'
    }
    ];

http://plnkr.co/edit/51BlTe5tAEgMV7ZlJLKV

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';
  $scope.c = [
    {
      name:'abc'
    },
    {
      name:'pqr'
    }
    ];

    $scope.onclick =function(){

      alert('dd')
      console.log($scope.c)
    }

});

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Вы также можете попробовать это.

 <li ng-repeat="x in displayValue">
      <input type="text" ng-model='x.name' ng-change='valueChanged(x.name,$index)'/>
 </li>

И в вашем контроллере вы можете иметь 2 разных json, один для отображения и один для фактических значений.Таким образом, условные показы "hhhh" и "dddd" также будут удовлетворены.

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';
  $scope.displayValue = [
    {
      name:'abc' == 'abc'? 'hhhh' : 'dddd'
    },
    {
      name:'pqr' == 'abc'? 'hhhh' : 'dddd'
    }
    ];

  $scope.actualValue = [
    {
      name: ''
    },
    {
      name:''
    }
    ];

    $scope.valueChanged =function(value,index)
    {
      $scope.actualValue[index].name =  value;
    }

    $scope.onclick =function(){

      console.log($scope.actualValue)
    }

});
0 голосов
/ 25 октября 2018

Используйте ng-model в своем шаблоне

<li ng-repeat="x in c">
  <input type="text" ng-model='x.name' value="{{x.name==='abc'?'ddd':'hhh'}}"/>
</li>

Если вам нужно обновить $scope.c при нажатии кнопки, используйте ng-model в другой переменной области и назначьте ее $scope.c в onclick

ОБНОВЛЕНИЕ:

Также обратите внимание, что ng-модель не зависит от value, поэтому x.name==='abc'?'ddd':'hhh' следует делать в обработчике событий onclick или ng-change

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...