2016-04-18 1 views
0

テキストエリアとその横にボタンが1つあります。ボタンをクリックすると、テキストエリアが含まれているモーダルウィンドウが開きます。私はできるモーダルウィンドウの外にあるテキストエリアにメッセージを表示する必要があります。しかし、再びボタンをクリックすると、以前に入力されたメッセージが表示されます。 ng-submitに明確な関数を使用してください。私は何かを助けてくれてありがとう。角度jを使用して以前に入力したデータを送信して表示した後にフォームを消去できません

angular.module('ui-rangeSlider', []) 
 
.directive('modal', function() { 
 
    return { 
 
     template: '<div class="modal fade">' + 
 
      '<div class="modal-dialog">' + 
 
      '<div class="modal-content">' + 
 
       '<div class="modal-header">' + 
 
       '<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>' + 
 
       '<h4 class="modal-title">{{ title }}</h4>' + 
 
       '</div>' + 
 
       '<div class="modal-body" ng-transclude></div>' + 
 
      '</div>' + 
 
      '</div>' + 
 
     '</div>', 
 
     restrict: 'E', 
 
     transclude: true, 
 
    replace:true, 
 
     scope:true, 
 
     link: function postLink(scope, element, attrs) { 
 
     scope.title = attrs.title; 
 

 
     scope.$watch(attrs.visible, function(value){ 
 
      if(value == true) 
 
      $(element).modal('show'); 
 
      else 
 
      $(element).modal('hide'); 
 
     }); 
 

 
     $(element).on('shown.bs.modal', function(){ 
 
      scope.$apply(function(){ 
 
      scope.$parent[attrs.visible] = true; 
 
      }); 
 
     }); 
 

 
     $(element).on('hidden.bs.modal', function(){ 
 
      scope.$apply(function(){ 
 
      scope.$parent[attrs.visible] = false; 
 
      }); 
 
     }); 
 
     } 
 
    }; 
 
    }) 
 
var mymodal = angular.module('mymodal', ['ui-rangeSlider']); 
 
mymodal.controller('MainCtrl', function ($scope) { 
 
    $scope.showModal = false; 
 
    $scope.toggleModal = function(){ 
 
    \t 
 
     $scope.showModal = !$scope.showModal; 
 
     
 
    }; 
 
    $scope.submitToggle = true; 
 
    //default get the data 
 
    
 
//send post, saving to localStorage  
 
$scope.sendPost = function(test) { 
 
//setting the data to the textara 
 
    $scope.hello = test; 
 
    $scope.hello1 = test; 
 
    
 
    $scope.clear(); 
 
    
 

 
    /* //saving the data 
 
    return localstore.setData(test); 
 
    */    
 
      }; 
 
      $scope.clear=function(){ 
 
      \t 
 
      \t 
 
         \t $scope.test = null; 
 
      }; 
 
    
 
    }); 
 

 

 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
 
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" /> 
 

 

 

 
\t <body ng-app="mymodal"> 
 
\t <div ng-controller="MainCtrl" class="container"> 
 
     <textarea ng-model="hello">{{test}}</textarea> 
 
    <button ng-click="toggleModal()" class="btn btn-default">Open modal</button> 
 
    
 
    <modal title="Login form" visible="showModal"> 
 

 
\t <form> 
 
\t <textarea ng-model="test" class="form-control" id="text" name="modaltext" placeholder="Type in your message" rows="5" maxlength="200"></textarea> 
 
    
 
    <button class="btn btn-default" type="submit" ng-click="sendPost(test);clear()" data-dismiss="modal">Submit</button> 
 
     <div id="textarea_feedback"></div> 
 
    </form> 
 
\t  
 
\t </modal> 
 
\t </div> 
 
\t </body>

/http://jsfiddle.net/RLQhh/5562/

答えて

0

モーダルを開くための関数を呼び出すときはこのように、testテキストにアクセスしてクリアすることができます。

scope.$$nextSibling.test = '';

http://jsfiddle.net/RLQhh/5632/

編集:は今、それはまたちょっとアルベスは、あなたのcomment.Iのおかげではそれを試してみましたが、そのjsfiddle URLとポストに編集してくださいthat..Can使用を修正することができません

+0

99に残りの文字をリセットし link.may何か間違っているかもしれません。文字カウントが変化していなくても... ....ありがとう –

+0

私はjsfiddleを更新しました。 –

関連する問題