Получить отредактированное значение в AngularJS
У меня есть данные в формате JSON, например:
"details": {
"col1": "value1",
"col2": "value2",
"col3": "value3",
"col4": "value4",
"col5": "value5",
"col6": "value6",
"col7": "value7",
"col8": "value8"
}
<div ng-repeat="(key,value) in details">
<div>{{key}}:</div>
<input value="value">{{value}} </input>
Если я редактирую значение поля, как можно получить отредактированное значение в контроллере?
3 ответа
Решение
Используйте переменную $scope и привяжите к ng-модели
<input type="text" ng-model="value" ng-blur="print(value)" size="30">
WORKING DEMO
Это то, что вы ищете?
Попробуйте этот рабочий фрагмент. Это даст значение в зависимости от изменения в текстовом поле.
var app = angular.module('myApp', []);
app.controller('appCtrl', function($scope) {
var details = {
"col1": "value1",
"col2": "value2",
"col3": "value3",
"col4": "value4",
"col5": "value5",
"col6": "value6",
"col7": "value7",
"col8": "value8"
}
$scope.details = details;
$scope.getChangedValue = function(value){
console.log("Key :" + value);
console.log("Value :" + details[value]);
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myApp">
<div ng-controller="appCtrl">
<div ng-repeat="(key,value) in details">
<label>{{key}}:</label>
<input ng-model="details[key]" ng-blur="getChangedValue(key)">
</div>
<br>
<br>
<div>{{details}}</div>
</div>
</body>
@Mahesh Karthu: Спасибо за фрагмент.
var app = angular.module('myApp', []);
app.controller('appCtrl', function($scope) {
var details = {
"col1": "value1",
"col2": "value2",
"col3": "value3",
"col4": "value4",
"col5": "value5",
"col6": "value6",
"col7": "value7",
"col8": "value8"
}
$scope.details = details;
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myApp">
<div ng-controller="appCtrl">
<div ng-repeat="(key,value) in details">
<label>{{key}}:</label>
<input ng-model="details[key]">
</div>
<br>
<br>
<div>{{details}}</div>
</body>