ng-model not bindings

时间:2016-05-07 00:48:20

标签: javascript angularjs

我从控制器获取jsondata并使用ng-repeat填充表

<tr ng-repeat="customer in customerlist">
    <td>{{customer.fistname}}</td>
    <td>{{customer.lastame}}</td>
    <td id="emailid" >{{customer.email}}</td>
    <td><a href="#" class="customeropt" id="customeropt" ng-click="editCustomer(customer.email)" >Edit</a></td>
</tr>

从表中获取数据后,我想将数据设置为输入进行编辑 我使用editCustomer(customer.email)

获取数据
$scope.editCustomer = function(email){
   var edit = this;    
   $scope.emailid = email;
   console.log(email);
    return email;
}

如何将数据设置为输入字段或其他html标记。 当我对任何HTML标记使用ng-model和ng-change时,当我点击&#34;编辑&#34;

时,它不会更新
<h2 ng-model="changedData" ng-change="changeData()">Email: {{changedData}}</h2>
    <input ng-model="changedData" ng-change="changeData()">

ng-change功能:

$scope.changeData = function(){
       $scope.changedData;
   console.log($scope.changedData);
}

抱歉我的英语不是我的母语。

1 个答案:

答案 0 :(得分:0)

试试这个:

HTML:

<tr data-ng-repeat="customer in customerlist">
    <td>{{customer.fistname}}</td>
    <td>{{customer.lastame}}</td>
    <td id="emailid" >{{customer.email}}</td>
    <td>
        <a href="#" class="customeropt" id="customeropt" 
            data-ng-click="editCustomer(customer)" >Edit</a>
    </td>
</tr>
<h2>Email: {{ customer.email }}</h2>
<input data-ng-model="customer.email">

JS:

$scope.customer =
    {
        firstname: "",
        lastname: "",
        email: ""
    }
$scope.editCustomer = function(customer){
    $scope.customer.firstname = customer.firstname;
    $scope.customer.lastname = customer.lastname;
    $scope.customer.email = customer.email;
}

让我知道它是怎么回事。

修改

以下是它的工作原理:ng-repeat指令为每一行创建一个customer对象。 ng-click事件传递了该行的customer对象。在事件处理程序editCustomer内,为scope variable名称$scope.customer分配了customer的属性。使用ng-model directive与$ scope.customer进行双向绑定,以便在值更改时更改范围变量。