>  Q&A  >  본문

javascript - Angular路由加载视图后,如何实现立即初始化请求数据?

<html>
  <body>
    <!-- 目前我只知道通过点击事件来触发加载-->
    <!-- 如何实现一跳转到视图,就调用$scope.getHomeData()方法呢? -->
    <a href="javascript:void(0);" ng-repeat="getHomeData()">
  </body>
</html>
//配置主页的路由
mainApp.config(function($stateProvider, $urlRouterProvider) {
  //默认指向404
  $urlRouterProvider.otherwise("/404");
  //配置路由
  $stateProvider.state('home', {
    url: '/home',
    templateUrl: 'home.html',
    controller : function($scope,$http){
      //定义获取首页相关数据的方法
      $scope.getHomeData = function(){
        $http({
          url : '/getHomeData',
          method : 'POST'
        }).then(function(){
            //请求成功
        },function(){
            //请求失败
        })
      };
    }
  }).state('404',{
    url: '/home',
    templateUrl: 'home.html'
  });
});
巴扎黑巴扎黑2735일 전499

모든 응답(2)나는 대답할 것이다

  • 巴扎黑

    巴扎黑2017-04-11 12:26:52

    使用ng-init来初始化, 这样可能会有页面空白,也可以使用resolve在跳转前就加载数据

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-11 12:26:52

    从你的代码来看,你将请求数据封装在了$scope下的getHomeData方法:你只需要在controller下调用就可以获取数据了:
    $scope.getHomeData()
    问题:你的代码极不规范,你不应该在路由配置里面写太多的逻辑代码。

    회신하다
    0
  • 취소회신하다