2017-11-30 16 views
0

私は角度jで奇妙な問題に直面しています。 私はテキストエリアを使用しており、デフォルト値を持っています。しかし、私がテキストエリアの値を手動で変更すると、コントローラで更新されません。textarea ng-modelで動作しない双方向バインディング

また、他のスコープはデフォルト値にバインドされていません。

私のHTML

<div ng-controller="req" class ="ng-cloak"> 
<form name="dynamic_fields_tm" ng-submit="goDynamicTm()"> 
         <input type="text" ng-model="tmDynam.one"> 
         <input type="submit" value="Go!" ng-show="tm_dynamic1"> 
        </form> 
<div class="request" ng-if="postrequest_disp"> 
    <textarea>{{postrequest}}</textarea> 
</div> 
</div> 

のJs

app.controller('req', function($scope ,$rootScope ,$http ,$location ,$window, $timeout) { 
$scope.postrequest = "{'event':{'event_id':" + $scope.tmDynam.one+"} ,'note':'Testing', 'is_display_price': 'true', 'ticket_ids':["+$scope.tmDynam.two+"] }"; 
     $scope.postrequest_disp = true; 
     $scope.tm_dynamic1 = true; 
     $scope.goDynamicTm = function() 
     {    
      console.log($scope.postrequest); 
     } 
}); 

創刊。コンソールで私はデフォルト値を受け取りました..しかし、私がテキストエリアで更新するとき、更新された値ではありません。 もう1つは、$ scop.tmDynam.oneが$ scope.postrequestで更新されていないことです。 また、{{}}の代わりにng-modelを使用しました。依然として問題が残る 助けてください

答えて

0

ng-ifの中にtextareaを使用しているので、それは分離スコープを作成するので、親スコープにアクセスする必要があります。 $parent.postrequestのテキストエリアにng-modelを使用してください。私は$ scope.tmDynam.oneにバインドさテキストフィールドに値を入力すると、私の第二の問題はまだ...持続worked..But

デモ

var app = angular.module("myApp",[]); 
 
app.controller('req', function($scope ,$rootScope ,$http ,$location ,$window, $timeout) { 
 
$scope.tmDynam = {one:'', two: ''} 
 
$scope.postrequest = "{'event':{'event_id':" + $scope.tmDynam.one+"} ,'note':'Testing', 'is_display_price': 'true', 'ticket_ids':["+$scope.tmDynam.two+"] }"; 
 
     $scope.postrequest_disp = true; 
 
     $scope.tm_dynamic1 = true; 
 
     $scope.goDynamicTm = function() 
 
     {   $scope.postrequest = "{'event':{'event_id':" + $scope.tmDynam.one+"} ,'note':'Testing', 'is_display_price': 'true', 'ticket_ids':["+$scope.tmDynam.two+"] }"; 
 
      console.log($scope.postrequest); 
 
     } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp"> 
 
<div ng-controller="req" class ="ng-cloak"> 
 
<form name="dynamic_fields_tm" ng-submit="goDynamicTm()"> 
 
         <input type="text" ng-model="tmDynam.one"> 
 
         <input type="submit" value="Go!" ng-show="tm_dynamic1"> 
 
        </form> 
 
<div class="request" ng-if="postrequest_disp"> 
 
    <textarea ng-model="$parent.postrequest"></textarea> 
 
</div> 
 
</div> 
 
</div>

+0

... ..その値は$ scope.postrequestに更新されていません。私はそれを私の弦と連結しているので...ここでは縛られていないのですか? – ronit

+0

です。角度の双方向バインディングはオブジェクトのプロパティに影響しないためです。 "$ scope.postrequest =" {'イベント':{'event_id': "+ $ scope.tmDynam.one +"}、 'メモ': 'テスト'、 'is_display_price': 'true'、 'ticket_ids': ["+ $ scope.tmDynam.two +"]} ";" in goDynamicTm関数へ –

+0

@ronit更新された答えをチェックします。 –

関連する問題