angularjs中,怎样复用一个Controller中的重复代码

发布于 2022-09-03 08:23:22 字数 1541 浏览 20 评论 0

比如有四个列表,布局几乎一样,只有细微的区别,Controller的代码自然也就非常类似了,比如只有请求参数不同。

initialize();

        $scope.refreshHub[$scope.REFRESH_METHOD[$scope.nowIndex]] = function () {
            $scope.model_request.pageNum = 1;
            business_XW1.requestNewsList($scope.model_request).then(
                function (okRs) {
                    $scope.list = okRs.response.parram;
                    setTimeout(function () {
                        $rootScope.loadMoreState = $scope.list.length >= $scope.model_request.pageSize;
                    },500);
                },$scope.errorCallback
            ).always(function () {
                $rootScope.$broadcast('scroll.refreshComplete');
            });
        };
        $scope.loadHub[$scope.LOAD_METHOD[$scope.nowIndex]] = function () {
            $scope.model_request.pageNum++;
            business_XW1.requestNewsList($scope.model_request).then(
                function (okRs) {
                    Array.prototype.push.apply($scope.list,okRs.response.parram);
                    $rootScope.loadMoreState = okRs.response.total > $scope.list.length;
                },$scope.errorCallback
            ).always(function () {
                $rootScope.$broadcast('scroll.infiniteScrollComplete');
            });
        };

        // helper methods ~
        function initialize() {
            $scope.model_request = new xw_model.Corporation();
            $scope.list = [];
        }

比如这段代码,这四个列表的Controller中,只有model_request参数不同,那么我该如何才能复用这段代码呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

断舍离 2022-09-10 08:23:22

把同样的逻辑封装成一个服务

app.factory('yourFact', function() {
    this.fn1 = function() {};
    this.fn2 = function() {};
})

如果要在controller中使用,通过下面的方式注入即可

app.controller('xxxcontroller', function($scope, yourFact) {
    // 服务其实返回的是一个单例对象,因此直接调用里面的方法即可
    yourFact.fn1();
})
走走停停 2022-09-10 08:23:22

放到service里,再调用啊,或者封装成一个指令啊

落在眉间の轻吻 2022-09-10 08:23:22

封装service

怂人 2022-09-10 08:23:22

本人用的ui-router 直接在里面传值进去,对值进行判断,取得相应的方法获取数据

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文