最近我在一个有角度的js项目中工作。我碰巧遇到需要处理焦点和模糊事件文本框的情况。我的情况是,当焦点从文本框中移出时我需要附加$符号,并在文本框聚焦时追加$。
我尝试为那个
创建组件 angular.module('myApp').component('dollarText', {
templateUrl: '<input type="text">',
controller: function($scope, iElm, iAttrs){
iElm.bind('change', function(){
iElm.val('$'+iElm.val());
});
}
});
但我无法访问焦点事件。我知道我做得不对。 如何触发角度分量中的焦点和模糊。角度组件是我的任务的最佳选择。
答案 0 :(得分:2)
如果您要处理某个div
或其他ng-repeat
或其他内容,例如,在function(this)
或长元素列表中,您需要使用function(context)
并在JavaScript方面使用需要使用<html ng-app="myApp">
<body ng-controller="myController">
<!--When on-blur, call blur(this), when on-focus, call focus(this)-->
<input type="text" name="myApplicationRocks"
ng-focus="focus(this)" ng-blur="blur(this)"/>
<!-- Content changes on blur and on focus-->
<h1>{{whatToWrite}}</h1>
</body>
</html>
与该元素进行交互。
Here's a working Plunker我想你正在寻找的东西。
<强> HTML:强>
var myApp = angular.module('myApp', []);
myApp.controller('myController', function($scope){
$scope.whatToWrite = "Well, try something";
$scope.focus = function(context){
console.log("On Focus");
context.whatToWrite = "Focus On!";
};
$scope.blur = function(context){
console.log("On Blur");
context.whatToWrite = "Blur On!";
};
});
<强> JS:强>
this
当然,它也可以在没有context
和$.post("myscript.php", {userId: 123, message: "My message"});
的情况下使用,但在某些情况下它非常有用。
我希望我一直很有帮助。