2016-08-25 20 views

答えて

1

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

 
app.controller("MyController", function($scope) { 
 
    $scope.fname = "Hello!!" 
 
    $scope.lname = "World"; 
 
}) 
 
.directive('clearField', function($compile) { 
 
\t return { 
 
\t restrict: 'A', 
 
\t scope: { 
 
\t  model: '=ngModel' 
 
\t }, 
 
\t link: function(scope, element, attr) { 
 
\t  // Add wrapper to the element 
 
\t  scope.model = (scope.model == undefined) ? "" : scope.model; 
 

 
\t  element.wrap('<span class="wrapper"></span>') 
 
\t  .addClass('pr14') 
 
\t  .after('<span class="clear">×</span>'); 
 

 
\t  var clearInputElement = angular.element(element.next()); 
 

 
\t  clearInputElement.bind('click', function() { 
 
\t  scope.$apply(scope.model = ""); 
 
\t  }); 
 

 
\t  scope.$watch('model', function() { 
 
\t  if (scope.model.length > 0) { 
 
\t   clearInputElement.css("visibility", "visible"); 
 
\t  } else { 
 
\t   clearInputElement.css("visibility", "hidden"); 
 
\t  } 
 
\t  }); 
 
\t } 
 
\t } 
 
});
.wrapper { 
 
    position: relative; 
 
    display: inline-block 
 
} 
 

 
.pr14 { 
 
    padding-right: 17px; 
 
} 
 

 
.clear { 
 
    position: absolute; 
 
    right: 7px; 
 
    color: grey; 
 
    font-size: 17px; 
 
} 
 

 
.clear:hover { 
 
    cursor: pointer; 
 
    color: blue; 
 
}
<!DOCTYPE html> 
 
<html lang="en" ng-app="myApp"> 
 

 
<head> 
 
    <meta charset="UTF-8" /> 
 
    <title>Document</title> 
 
    <script data-require="[email protected]" data-semver="1.5.8" src="https://opensource.keycdn.com/angularjs/1.5.8/angular.min.js"></script> 
 
    <script src="script.js"></script> 
 
    <link rel="stylesheet" href="style.css"> 
 
</head> 
 

 
<body ng-controller="MyController"> 
 
    <label>Name: </label> 
 
    <input type="text" ng-model="fname" clear-field> 
 
    <textarea ng-model="lname" id="" cols="30" rows="10" clear-field></textarea> 
 
</body> 
 

 
</html>

0
は、このようなあなたの .wrapperクラスを変更し

:inputタグとして

.wrapper { 
    position: relative; 
    display: inline-block; 
} 
+0

あなたは要素を検査やってコードをチェックすると、私はすでにそれを包みました。しかし、spanタグを使用し、divタグを使用しないでください。私はすでにdivに置き換えてチェックしましたが、うまくいきませんでした – Aparna

+0

@Aparnaもう一度答えを確認してください。あなたはあなたの質問をもっと説明しなければなりません!それは働いている。 –

+0

CSSでうまくいかないどのように助けてくれてありがとう。 – Aparna

1

はコンテナタグではありません、あなたはdivの中にinputタグと終了タグをラップする必要があります。

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

 
app.controller("MyController", function($scope) { 
 
    $scope.fname = "Hello!!" 
 
    $scope.lname = "World"; 
 
}) 
 
.directive('clearField', function($compile) { 
 
\t return { 
 
\t restrict: 'A', 
 
\t scope: { 
 
\t  model: '=ngModel' 
 
\t }, 
 
\t link: function(scope, element, attr) { 
 
\t  // Add wrapper to the element 
 
\t  scope.model = (scope.model == undefined) ? "" : scope.model; 
 

 
\t  element.wrap('<span class="wrapper"></span>') 
 
\t  .addClass('pr14') 
 
\t  .after('<span class="clear">×</span>'); 
 

 
\t  var clearInputElement = angular.element(element.next()); 
 

 
\t  clearInputElement.bind('click', function() { 
 
\t  scope.$apply(scope.model = ""); 
 
\t  }); 
 

 
\t  scope.$watch('model', function() { 
 
\t  if (scope.model.length > 0) { 
 
\t   clearInputElement.css("visibility", "visible"); 
 
\t  } else { 
 
\t   clearInputElement.css("visibility", "hidden"); 
 
\t  } 
 
\t  }); 
 
\t } 
 
\t } 
 
});
.wrapper { 
 
    position: relative; 
 
} 
 

 
.pr14 { 
 
    padding-right: 17px; 
 
} 
 

 
.clear { 
 
    position: absolute; 
 
    right: 7px; 
 
    color: grey; 
 
    font-size: 17px; 
 
} 
 

 
.clear:hover { 
 
    cursor: pointer; 
 
    color: blue; 
 
} 
 
.wrap{position:relative;}
<!DOCTYPE html> 
 
<html lang="en" ng-app="myApp"> 
 

 
<head> 
 
    <meta charset="UTF-8" /> 
 
    <title>Document</title> 
 
    <script data-require="[email protected]" data-semver="1.5.8" src="https://opensource.keycdn.com/angularjs/1.5.8/angular.min.js"></script> 
 
    <script src="script.js"></script> 
 
    <link rel="stylesheet" href="style.css"> 
 
</head> 
 

 
<body ng-controller="MyController"> 
 
    <div class="wrap"> 
 
    <label>Name: </label> 
 
    <input type="text" ng-model="fname" clear-field> 
 
    </div> 
 
    <br> 
 
    <div class="wrap"> 
 
    <textarea ng-model="lname" id="" cols="30" rows="10" clear-field></textarea> 
 
    </div> 
 
</body> 
 

 
</html>