发布于 2015-01-16 09:10:38 | 2559 次阅读 | 评论: 0 | 来源: PHPERZ

这里有新鲜出炉的AngularJS Tutorial中文版,程序狗速度看过来!

AngularJS 前端JS框架

AngularJS诞生于Google是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入,等等。


本文为大家提供的是一个Angularjs表单focus 指令示例代码,感兴趣的同学参考下。

Angularjs简介

AngularJS诞生于Google是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入,等等。

Angularjs的思维方式是通过数据带动DOM变动,通常依托指令与控制器的配合来实现。就表单操作上,提供了几乎完备的操作体验。对于官方没有实现的功能,只能自己来实现。比如说在做表单校验时,使用编码方式实现控件的focus

简易表单

如下为一个简易表单,auto-focus-when为负责控件focus的指令。

<form class="form-horizontal" name="form" role="form" ng-controller="FocusCtrl">
    <div class="form-group">
      <label for="username" class="col-sm-2 control-label" >用户名</label>
      <div class="col-sm-5">
        <input type="text" ng-model="username" name="username" 
            id="username" class="form-control" auto-focus-when="usernameFocus" >
      </div>
    </div>

    <div class="form-group">
      <label for="bookname" class="col-sm-2 control-label" >书名</label>
      <div class="col-sm-5">
        <input type="text" ng-model="bookname" name="bookname" 
            id="bookname" class="form-control" auto-focus-when="booknameFocus">
      </div>
    </div>
</form>


自定义指令

指令内容比较简单,不做过多说明。

angular.module('shuffleApp', [])
  .directive('autoFocusWhen', ['$log','$timeout', function($log, $timeout) {
      return {
          restrict: 'A',
          scope: {
              autoFocusWhen: '='
          },
          link: function(scope, element) {
              scope.$watch('autoFocusWhen', function(newValue) {
                  if (newValue) {
                     $timeout(function(){
                         element[0].focus();
                     })
                  }
              });

              element.on('blur', function() {
                  scope.$apply(function() {
                      scope.autoFocusWhen = false;
                  })
              })
          }
      }

控制器测试

此处控制器与指令本是同级,此处分开说明之用。通过控制器内部的变量控制,即可实现表单控件的focus控制。

angular.module('shuffleApp', [])
  .controller('FocusCtrl', ['$scope', '$interval', function($scope, $interval) {
      $scope.usernameFocus = false;
      $scope.booknameFocus = true;
      $interval(function() {
          $scope.usernameFocus = $scope.usernameFocus ? false : true;
          $scope.booknameFocus = $scope.booknameFocus ? false : true;
      }, 1500, 3);
  }])

 



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务