处理角度1.5分量中的焦点和模糊事件

时间:2016-05-28 15:15:48

标签: javascript angularjs angularjs-directive

最近我在一个有角度的js项目中工作。我碰巧遇到需要处理焦点和模糊事件文本框的情况。我的情况是,当焦点从文本框中移出时我需要附加$符号,并在文本框聚焦时追加$。

我尝试为那个

创建组件
       angular.module('myApp').component('dollarText', {
          templateUrl: '<input type="text">',
          controller: function($scope, iElm, iAttrs){
                iElm.bind('change', function(){
                    iElm.val('$'+iElm.val());
                });
            }
        });

但我无法访问焦点事件。我知道我做得不对。 如何触发角度分量中的焦点和模糊。角度组件是我的任务的最佳选择。

1 个答案:

答案 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"});的情况下使用,但在某些情况下它非常有用。

我希望我一直很有帮助。