2017-01-05 6 views
1

У меня есть этот код с textarea1 и textarea2. Моя проблема: мне не удалось манипулировать ng-model на textarea2.Почему моя вторая ng-модель не возвращает значение как вставленное?

Если изменить что-нибудь в textarea2 ... ничего не произошло

Любой человек может помочь мне разобраться с этой проблемой? Благодарю.

Вы можете увидеть коды, которые я сделал до сих пор.

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

 
//myApp.directive('myDirective', function() {}); 
 
//myApp.factory('myService', function() {}); 
 

 
function MyCtrl($scope) { 
 
$scope.model1 = "Test1"; 
 
    $scope.catch = function(model1) 
 
    { 
 
    $scope.model2 = model1; 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script> 
 
<div ng-app="myApp"> 
 
<div ng-controller="MyCtrl"> 
 
    Textarea 1 
 
    <textarea onkeypress="{{catch(model1)}}" ng-model="model1"></textarea> 
 
    
 
    <br/> 
 
    Text area 2 
 
    <textarea ng-model="model2"></textarea> 
 
    
 
    <hr/> 
 
    Textarea1: {{model1}} <br/> 
 
    Textarea2: {{model2}} 
 
</div> 
 

 
</div>

+0

Прежде всего, я бы не использовать слово 'catch', так как это зарезервированная функция JS. Во-вторых, использование 'ng-keypress =" someFunction (model1) "' – daleyjem

+1

onkeypress вызывается в любое время, когда есть нажатие клавиши. а не только когда вы находитесь в этом текстовом поле и нажмите клавишу –

+1

@big_water. Keypress запускается везде, а model2 постоянно обновляется до model1. Любая причина, по которой вы используете такую ​​старую версию AngularJS? По иронии судьбы, если вы обновите, по крайней мере, до 1,5, Angular сообщит вам не использовать клавиши, и это убьет его; что позволяет вашей странице работать как ожидалось (обновляется модель2) – TSmith

ответ

2

Вы можете изменить onkeypress для ng-change?

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

 
//myApp.directive('myDirective', function() {}); 
 
//myApp.factory('myService', function() {}); 
 

 
function MyCtrl($scope) { 
 
$scope.model1 = "Test1"; 
 

 
    $scope.catch = function(model1) 
 
    { 
 
    $scope.model2 = model1; 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"></script> 
 
<div ng-app="myApp"> 
 
<div ng-controller="MyCtrl"> 
 
    Textarea 1 
 
    <textarea ng-change="catch(model1)" ng-model="model1"></textarea> 
 
    
 
    <br/> 
 
    Text area 2 
 
    <textarea ng-model="model2"></textarea> 
 
    
 
    <hr/> 
 
    Textarea1: {{model1}} <br/> 
 
    Textarea2: {{model2}} 
 
</div> 
 

 
</div>

+1

Спасибо! Очень... – Nere

Смежные вопросы