angularJS-----控制器

刚接触H5一个周,使用ionic+angularJS配合做webAPP和原生混合开发。可能以前着重点在iOS原生和C++方面,当初次接触前端技术,略微有点不适应。今天在做从网络获取数据展示到网页。第一次接触到控制器是在iOS原生上,而angularJS上的控制器比较抽象,搞了两天算是大体上会用,并没有完全理解。

angular.module('controllers',[])
首先是在module里面配置控制器,或者叫定义控制器。

angular.module('routes', []).config(function ($stateProvider, $urlRouterProvider) {

  $stateProvider.state('list', {
    url: '/list',
    views: {
      'main': {
        templateUrl: 'templates/list.html',
        controller: 'ListController'
      }
    }
  })
    .state('tab', {
      url: "/tab",
      abstract: true,
      views:{
        'main':{
          templateUrl: "templates/tabs.html",
          controller: "TabsController"
        }
      }
    })
<pre style="font-family: Menlo; font-size: 9pt; background-color: rgb(255, 255, 255);">最后加一局默认跳转,就是在路由里面找不到跳转的时候,默认跳转到这个页面。

$urlRouterProvider.otherwise('/list')
//  默认跳转
下面是做了左划右划的操作,用于切换tab页。
 
 
.controller('TabsController',function ($scope,$ionicTabsDelegate) {
  $scope.onSwipeLift=function () {
    if($ionicTabsDelegate.selectedIndex()!=4){
      $ionicTabsDelegate.select($ionicTabsDelegate.selectedIndex()+1);
    }
  }
  $scope.onSwipeRight=function () {
    if($ionicTabsDelegate.selectedIndex()!=0){
      $ionicTabsDelegate.select($ionicTabsDelegate.selectedIndex()-1);
    }
  }
})
这里的控制器是个抽象概念,我理解的是,控制器是一个包含页面中所有数据的一个抽象作用域,而$scope是在作用域里面数据和对数据的操作的总和。

.controller('PovertyFamilyListController', function ($scope, PovertyFamily,apiAddress) {
    var currentIndex=0;//默认第一页
    $scope.poorAdmassList=[];//群众数组
    $scope.apiAddress=apiAddress;
    //$scope.aasaaaa = apiAddress;
    //上拉刷新
    $scope.doRefresh = function () {
      currentIndex=1;
      PovertyFamily.povertyFamilyList(1, 10).success(function (response) {
        $scope.poorAdmassList=response.datas;
      })
        .finally(function () {
          $scope.$broadcast('scroll.refreshComplete');
        })
    }
    //下拉无限滚动
    $scope.loadMore = function() {
      currentIndex++;
      PovertyFamily.povertyFamilyList(currentIndex,10).success(function(response){
        $scope.poorAdmassList=$scope.poorAdmassList.concat(response.datas);
        $scope.$broadcast('scroll.infiniteScrollComplete');
      })
    };
  })
这段代码是在控制器里面做操作,赋值,加载数据等等。原来angularJS是种弱语言,可以赋值的同时定义变量或者方法。比如 $scope. apiAddress =apiAddress;

apiaddress在$scope里面是没有这个属性的,但是在赋值的同时,定义了这个属性。还有就是赋值的类型,并不区分整型浮点型字符串。

在某个页面的控制器里获取到数据,并且赋值,就可以在该页面上展示数据,比如。

.controller('PersonalInfoController',function ($scope,$stateParams,PovertyFamily,poorAdmassId,apiAddress) {
    poorAdmassId=$stateParams.id;
    PovertyFamily.povertyFamilyPersonalData(poorAdmassId).success(function (response) {
      $scope.personalInfo=response.data;
      //$scope.aasaaaa = apiAddress;
    })
})
上面代码是获取到数据,并把网络获取的数据赋值给页面上的personalinfo。这样在页面上就可以展示数据。

<h2>{{personalInfo.householderName}}(户主) <span class="list-span-sex-age-right">{{personalInfo.gender}} {{personalInfo.age}}岁 {{personalInfo.nationality}}</span></h2>
          <p style="padding: 5px 0">浏览{{personalInfo.pV}}次 捐助总额{{personalInfo.salvationMoney}}元 被救助{{personalInfo.salvationCount}}次</p>







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AngularJS `ui-view` 的使用通常涉及以下几个步骤: 1. 安装 AngularJS 和 AngularUI Router。AngularUI Router 是一个用于 AngularJS 的第三方路由模块,可以实现多视图和嵌套路由等功能。 2. 在 HTML 中定义 `ui-view` 指令,用于展示视图。可以定义一个或多个 `ui-view`,每个指令可以使用一个名字来标识。 3. 在 JavaScript 中配置路由,并指定与视图相关的模板和控制器。通常使用 `$stateProvider` 和 `$urlRouterProvider` 服务来配置路由。 下面是一个简单的示例,演示了如何使用 `ui-view` 展示两个页面: ```html <!DOCTYPE html> <html ng-app="myApp"> <head> <meta charset="utf-8"> <title>AngularJS UI-Router Demo</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/1.0.29/angular-ui-router.min.js"></script> <script> // 创建 AngularJS 应用程序 var app = angular.module('myApp', ['ui.router']); // 配置路由 app.config(function($stateProvider, $urlRouterProvider) { $stateProvider .state('home', { url: '/', templateUrl: 'home.html', controller: 'HomeController' }) .state('about', { url: '/about', templateUrl: 'about.html', controller: 'AboutController' }); $urlRouterProvider.otherwise('/'); }); // 控制器定义 app.controller('HomeController', function($scope) { $scope.message = 'Welcome to the homepage!'; }); app.controller('AboutController', function($scope) { $scope.message = 'Learn more about us!'; }); </script> </head> <body> <h1>AngularJS UI-Router Demo</h1> <nav> <a ui-sref="home">Home</a> <a ui-sref="about">About</a> </nav> <div ui-view></div> </body> </html> ``` 在上面的示例中,我们定义了两个路由:`home` 和 `about`。每个路由都指定了一个与之对应的模板和控制器。在 HTML 中,我们使用 `ui-sref` 指令来指定路由,并使用 `ui-view` 指令来展示视图。在这种情况下,我们只有一个 `ui-view`,因此没有必要给它指定任何名字。 当用户点击导航链接时,将会触发路由,对应的视图将会展示在 `ui-view` 中。在这个示例中,我们在 `HomeController` 和 `AboutController` 中定义了一些文本信息,用于展示在对应的视图中。 注意,使用 `ui-sref` 指令时,需要将路由名称作为参数传递给指令。这个名称应该与路由配置中的名称匹配。 这只是一个简单示例,实际应用中可能还需要更多的路由和视图。掌握了 `ui-view` 的基本使用方法之后,你可以继续学习 AngularUI Router 的更多功能,例如嵌套视图、路由参数等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值