我制作了以下代码(jsFiddle)来获取文本字段的输入:
var app = angular.module('myApp', [
'my.controllers'
]);
var controllers = angular.module('my.controllers', []);
controllers.controller('MyController', function($scope) {
});
controllers.controller('listdata', function($scope, $http) {
$scope.editItem = function(event) {
var fieldTitle = $(event.currentTarget).attr("data-id");
var fieldValue = event.target.value;
console.log(fieldTitle + " : " + fieldValue);
};
})
在这种情况下,该函数仅返回文本更改的字段名称和字段值。当其中一个字段发生变化时,获取所有输入字段的所有值的正确方法是什么?
答案 0 :(得分:0)
关于你的问题
"当其中一个字段被更改时,获取所有输入字段的所有值的正确方法是什么?" , this fiddle向您展示了在字段更改后获得所有结果的正确方法之一。
基本思想是对输入字段使用ng-model指令:实际上是你的代码
var fieldTitle = $(event.currentTarget).attr("data-id");
var fieldValue = event.target.value;
这是一个你没有想到的标志(我建议你阅读this excellent answer以了解你应该做些什么)。
使用ng-model将变量绑定到范围,并使用ng-change来拦截变量:
<input type="text" ng-model="id" ng-change="editItem(id)">
<input type="text" ng-model="title" ng-change="editItem(title)">
<input type="text" ng-model="number" ng-change="editItem(number)">
并在您的控制器中:
$scope.editItem = function (value) {
console.log("currentValue" + value);
console.log("ID:" + $scope.id + " Title: " + $scope.title +" Number:" + $scope.number);
};
答案 1 :(得分:0)
首先,你没有在输入框中使用ng-model指令,因此如果你在特定输入上使用ng-change和ng-blur,它肯定会出错。
<input type="text" data-id="id" ng-model="itemList.input1" ng-change="editItem()">
<input type="text" data-id="title" ng-model="itemList.input2" ng-blur="editItem()">
<input type="text" data-id="number" ng-model="itemList.input3" ng-blur="editItem()">
这是一个 jsfiddle我在console.log中有一个对象,它在模糊或输入变化时返回所有三个值。