【问题标题】:Angularjs input search field focus event?Angularjs输入搜索字段焦点事件?
【发布时间】:2015-01-08 20:48:05
【问题描述】:

试图捕捉用户返回搜索字段的焦点或点击事件。

<form name="searchUser">
    <input type="search" placeHolder="Username to find" ng-model="username" ng-focus="focusSet()">
    <input type="submit" value="Search" ng-click="search(username)" />
</form>

当有人点击文本(搜索)字段时,我想启动一个计时器。计时器适用于初始页面刷新,但我无法让它适用于 ng-focus 或 ng-click。所以我退化为一个简单的 focusSet 函数,它只向控制台写入一行。但它从来没有在焦点上写下这条线。也通过点击尝试了这个。

为什么 Angular 不响应焦点事件?

var focusSet = function(){
  $log.info("Got Focus");
  $scope.focusSet = "now you see me";

};

如果你想看完整的东西,这是我的 plunker http://plnkr.co/edit/zmWVWJrigRYkQk5jS5HU?p=preview

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    尝试:

    $scope.focusSet = function(){
      $log.info("Got Focus");
      // $scope.focusSet = "now you see me";
    };
    

    【讨论】:

    • 我试过这个。显然,您不能在 scope.focusSet 函数内设置 scope.focusSet,但是在更新变量后它起作用了。我是 Angular 新手,你能解释一下为什么这对我的实现有效吗?
    • 这种帮助 stackoverflow.com/questions/24287954/scope-vs-var-in-angularjs,但我仍然对它与 var 函数的关系有点模糊。
    • 任何你在ng-*中定义的属性名,比如ng-model、ng-click、ng-focus都属于控制器作用域,所以你必须声明$scope.focusSet
    猜你喜欢
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 2019-03-13
    • 2015-03-20
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多