AngularJS-如何单击按钮获取对象

时间:2018-10-25 06:21:14

标签: javascript angularjs

我有一个对象数组。我在输入字段中显示了名称。现在,我要单击按钮后更新的对象(无论用户填写输入字段如何)

例如,如果我在输入字段中输入“ 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 :(得分:2)

在模板中使用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-model不依赖于value,因此x.name==='abc'?'ddd':'hhh'应该在onclickng-change事件处理程序中完成

答案 1 :(得分:0)

您也可以尝试一下。

<?xml version="1.0" encoding="utf-8"?>
<paths>
    <external-path path="Android/data/com.your.package/" name="files_root"/>
    <external-path name="external_files" path="."/>
</paths>

在您的控制器中,您可以有2个不同的json,一个用于显示,另一个用于实际值。因此也可以有条件地显示“ hhhh”和“ dddd”。

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