Maison > Questions et réponses > le corps du texte
J'ai téléchargé un plug-in jq en ligne et la zone de saisie est liée à l'événement click, mais le script angulaire que j'ai écrit moi-même utilise également ng-keydown sur la même zone de saisie. . . Je pensais que la fonction de traitement des touches d'Angular serait exécutée, mais cela n'a pas fonctionné. . . Mais je ne peux pas supprimer le gestionnaire d'événements click du plug-in car sa fonction doit être utilisée. . . Je ne sais pas comment gérer cette situation
给我你的怀抱2017-05-15 17:10:07
<body ng-app="myApp" ng-controller="MyController">
<!--自定义指令: 限制输入框中只能是1到100之间的数值-->
<input type="text" score>
<script type='text/javascript' src="angular.js"></script>
<script type="text/javascript">
angular.module('myApp',[])
.directive('score', function () {
return {
link : function (scope, elements, attrs, controller) { //在显示之前执行, 只执行一次
//得到input
//console.log('link()',elements);
var input = elements[0]
//给input绑定keyup的监听回调函数
input.onkeyup = function () {
//读取input的value, 判断是否合法
var score = input.value.trim()
//如果合法, background为white
if(score==='' || (score*1>=1&&score*1<=100)) {
input.style.background = 'white'
} else {
//否则为red
input.style.background = 'red'
}
}
}
}
})
.controller('MyController', function($scope){
});
</script>
</body>
</html>
仅有的幸福2017-05-15 17:10:07
Vous ne pouvez pas l'écrire comme ça,
Le premier choix est require : '?ngModel',
Ensuite, récupérez la valeur de la zone de texte ngModel.$modelValue au lieu de input.value,
Il n'y a pas non plus besoin d'éléments [ 0], l'élément représente
jquery La réflexion est trop sérieuse. . .