HTML5技术

[后端人员耍前端系列]AngularJs篇:30分钟快速掌握AngularJs - Learning hard(2)

字号+ 作者:H5之家 来源:博客园 2016-05-10 13:00 我要评论( )

AngularJs路由演示 ( function () { ]);mainApp.config([ ($routeProvider) { $routeProvider; }); }); });route.otherwise({ redirectTo: });}]); () { [{ id: },{ id: },{ id: },{ id: }]; return function (id)

AngularJs路由演示 (function() { ]); mainApp.config([($routeProvider) { $routeProvider; }); }); }); route.otherwise({ redirectTo: }); }]); () { [ { id: }, { id: }, { id: }, { id: } ]; return function(id) { list; ; (v, i) { i; }); return list[t]; } }); ($scope, service) { service(); }]); ($scope, service, $routeParams) { $scope.model {}; }]); })() 列表

列表页面 route-list.html

{{item.title}}

详细页面 route-view.html

网站ID:{{model.id}}网站名称:{{model.title}}访问地址:{{model.url}}

  在线预览地址:点击此运行

3.5 自定义指令

   前面我们已经介绍过指令了。除了AngularJs内置的指令外,我们也可以自定义指令来供我们程序使用。

如果我们在程序中需要对DOM操作的话,我们可以使用指令来完成。下面让我们来看下一个全选复选框的自定义指令的实现:

AngularJs 指令演示 (function(){ , []); () { [ { id: }, { id: }, { id: }, { id: } ]; return function (id) { list; ; (v, i) { i; }); return list[t]; }; }); mainApp.directive( () { return { restrict: , replace: false, link: function (scope, element) { ; ; () { ); element.find(item); tds.each(function (i, check) { $(check).prop(, o); }); }); () { ); ; if (o) { element.find(item).each(function () { )) { isChecked = false; return false; } return true; }); } element.find(all).prop( isChecked); }); } }; }]); mainApp.controller( ($scope, service) { $scope.list = service(); }]); })() AngularJs 指令演示选择网站ID网站名称链接地址{{item.id}}{{item.title}}{{item.url}}

  演示效果:点击此运行

 

3.6 服务

   在上面的路由例子和自定义指令中都有用到AngularJs中的服务。我理解AngularJs的服务主要是封装请求数据的内容。就如.NET解决方案的层次结构中的Services层。然后AngularJs中的服务一个很重要的一点是:服务是单例的。一个服务在AngularJS应用中只会被注入实例化一次,并贯穿整个生命周期,与控制器进行通信。即控制器操作$scope对象来改变视图,如果控制器需要请求数据的话,则是调用服务来请求数据的,而服务获得数据可以通过Http服务(AngularJS内置的服务)来请求后端的Web API来获得所需要的数据。

 AngularJS系统内置的服务以$开头,我们也可以自己定义一个服务。定义服务的方式有如下几种:

  在前面的例子我们都是以factory方法创建服务的,接下来演示下如何使用$provide服务来创建一个服务,具体的代码如下所示:

AngularJs 指令演示 (function(){ ($provide){ () { [ { id: }, { id: }, { id: }, { id: } ]; return function (id) { list; ; (v, i) { i; }); return list[t]; }; }); }]); mainApp.directive( () { return { restrict: , replace: false, link: function (scope, element) { ; ; () { ); element.find(item); tds.each(function (i, check) { $(check).prop(, o); }); }); () { ); ; if (o) { element.find(item).each(function () { )) { isChecked = false; return false; } return true; }); } element.find(all).prop( isChecked); }); } }; }]); mainApp.controller( ($scope, service) { $scope.list = service(); }]); })() AngularJs 指令演示选择网站ID网站名称链接地址{{item.id}}{{item.title}}{{item.url}}

  具体的运行效果与上面的效果一样。点击此运行

3.7 过滤器

   AngularJs过滤器就是用来格式化数据的,包括排序,筛选、转化数据等操作。下面代码创建了一个反转过滤器。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 前端工具的安装 - 韩子卢

    前端工具的安装 - 韩子卢

    2017-05-02 08:00

  • 移动前端常用meta标签 - 0jiji0

    移动前端常用meta标签 - 0jiji0

    2017-04-21 12:00

  • 前端项目从0到1的感悟 - liliangel

    前端项目从0到1的感悟 - liliangel

    2017-04-20 12:00

  • 前端页面跳转并取到值 - 哈哈哈是我呀

    前端页面跳转并取到值 - 哈哈哈是我呀

    2017-04-14 14:01

网友点评
s