recode的过程中有两个问题

我用的是Angular是1.5.X版本的
问题一:

  app.controller('HomeCtrl', ['$scope', '$rootScope', '$http', '$state', '$ionicLoading', '$cordovaKeyboard', '$filter','$ionicPopup',
      function($scope, $rootScope, $http, $state, $ionicLoading, $cordovaKeyboard, $filter,$ionicpo)]
      

每次controller 都要频繁注入相同的服务,有没有什么办法统一引用一次?

问题二:

http请求返回的时候,想给个提示框,我就打算在外部JS封装一个方法

    var alertShowTip = function (content) {
    var myAlert = $ionicPopup.show({
        title: content,
        scope: $scope,
        buttons: {
            text: '确认'
        }
    });
    $timeout(function () {
        myAlert.close();
    }, 1000);
};

有没有什么办法引用$ionicPopup和$timeout,因为这个封装不能用的,我自己的解决办法就是var alertShowTip = function (content,$ionicPopup,$timeout) 我总觉得这个办法有点笨

针对以上两个问题,有没有其他更优的解决办法?先谢谢大家

阅读 1.7k
1 个回答

答案一,可以试着自己封装一个service,里面涵盖了常用的这些$开头的模块,然后你每个controller只要引入你这个service,就能引用到其它$的内建模块了。不过我没试过,理论上可行

答案二,为啥要外部写一个? 尽量不要脱离angular的管控,你可以写directive什么的,也可以用Interceptor

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进