angular新手求教怎么把controller里的功能分离出来?

我在做几个简单的表格相关的页面,基本也就和示例文档里的那些表格数据绑定差不多,但是因为用到了分页,所以之前就在controller里写了几个分页相关的方法,大概下面这个意思:

https://img4.mukewang.com/5bab1ff800012a6203930397.jpg

然而分页功能肯定是几个页面要复用的,应该要单独封装出来吧。可我现在试了很久也不知道该用什么方法把它们从controller里分离出去,因为这几个方法里都用到了$scope。试过用directive,然后把需要的$scope里的值用scope:{value:'='}这样绑定,但是link的方法里scope.value就是undefined,是我用的不对吗?

第一次用angular,可能这个问题有点白痴,我不知道是不是我写jquery太久了,感觉看了很久的书和文章都搞不太懂angular的模块化该怎么理解Q-Q,现在感觉好混乱。factoryservicedirective都应该什么场景下使用Q-Q?(我的问题本质应该是因为没理解这个吧…)

能回答的话非常感谢Q-Q


PIPIONE
浏览 562回答 1
1回答

慕的地10843

把分页写在directive或者factory里面,把分页的一些初始化配置(每页分页的条数写成自定义html指令),然后获取数据的时候,把数据总条数,自定义的东西一起传过来,再用双向数据绑定,渲染到视图上。`app.directive("gPagination",&nbsp;[function&nbsp;()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template:'pagination.html', &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;restrict:&nbsp;'E', &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replace:&nbsp;true, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;link:&nbsp;function&nbsp;($scope,&nbsp;elem,&nbsp;attrs)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} }])` &nbsp;pagination.html<div> &nbsp;&nbsp;&nbsp;&nbsp;<pagination&nbsp;ng-model="pagination.pageIndex"&nbsp;total-items="pagination.totalItems"&nbsp;max-size="5" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ng-change="pageChanged()"&nbsp;items-per-page="pagination.pageSize"&nbsp;previous-text="&lsaquo;" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next-text="&rsaquo;"&nbsp;first-text="&laquo;"&nbsp;last-text="&raquo;"&nbsp;class="pagination"&nbsp;boundary-links="true" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rotate="false"></pagination> </div>',在controler里先注入directive,就能在项目内使用分页啦&nbsp;$scope.pageChanged&nbsp;=&nbsp;function&nbsp;()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$scope.option.pageIndex&nbsp;=&nbsp;$scope.pagination.pageIndex; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getList();//获取数据信息 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript