angular js(2)和ionic(2)的总结

最近一段时间又学习了一遍angular 2 和 ionic 2 主要和1的差别个人认为主要在于typescript这种语法的差异,typescript是一种OOP编程语言,是js的超集,

他将js面向对象编程弱的特点给完全放大出来而解决 所以我们看到angular 中一个界面就是一个类 component 在这个类中的数据绑定 按钮点击事件等都是

在这个类中实现的

首先看一下这个项目的目录结构


在src下使我们主要工作的目录

app.module.ts是真个项目的入口文件 

import { BrowserModule } from '@angular/platform-browser';
import {CommonModule} from '@angular/common';
import {FormsModule} from '@angular/forms';
import { AppComponent }  from './app.component';
import {UserComponent} from  './component/user.component'
import {AboutComponent} from './component/about.component'
import {HttpModule,JsonpModule} from '@angular/http';
import {routing} from './app.routing';
import {HttpService} from './service/HttpService'
@NgModule({
  imports:      [ BrowserModule,FormsModule,CommonModule,HttpModule,routing,JsonpModule],
  declarations: [ AppComponent,UserComponent,AboutComponent],
  //根视图的 只有根视图才能被视为boostrap
  bootstrap:    [ AppComponent ],
  providers:[HttpService]
})
export class AppModule { }
在@NgModule中 import表示引入其他的一些第三方框架 这里有HttpModule JSONModule等

declararions 表示 我们需要用到的界面 这里有AppComponet,UserComponent等这些界面 \

boostrap表示根界面 只能有唯一的一个 这里便是用AppComponent

providers 表示用到的服务 这里HttpService表示可以用到全局服务当中去

再来要看看一个个单个的界面

以user为例


在user.component.ts中 定义了一个界面应有的一些行为等

import { Component,Input,
    trigger,
    state,
    style,
    transition,
    animate} from '@angular/core';
import {HttpService} from './../service/HttpService'
import {Router} from "@angular/router";
和上面根界面一样 表示引入第三方的一些框架 

随后是页面的声明,

@Component({
    //为与模块相关的url
    moduleId:module.id,
    selector: 'user',
    //providers表示服务的创建者
    templateUrl:'user.component.html',
    styles: [`
    .hero {
      background-color: #CFD8DC !important;
      color: white;
    }
`]

})
moduleId 表示与模块相关的url 

随后selector 表示可以在其他界面引用该界面的hrml标签 这里用到了user

providers 表示相关用到的协议,templateURL 表示html页面 同时也可以用template来直接写html标签

这里还可以使用styles 来声明相关属性

export class UserComponent {
    name = 'Angular';
    address: address;

    divHtml = "<p>caokaiqqq</p>";
    inputtext:any
    hobb:string[]
    constructor(private HttpService:HttpService,private router:Router) {
        this.address = {
            street:"cangqian",
            state:"hangzhou"
        }

export表示将这个方法暴露出去 可供外部的其他界面引用该界面等

constructor表示构造器,在一个类中可声明相关的属性 例如name address等

私有的httpService协议等

整体的代码如下

import { Component,Input,
    trigger,
    state,
    style,
    transition,
    animate} from '@angular/core';
import {HttpService} from './../service/HttpService'
import {Router} from "@angular/router";

@Component({
    //为与模块相关的url
    moduleId:module.id,
    selector: 'user',
    //providers表示服务的创建者
    templateUrl:'user.component.html',
    styles: [`
    .hero {
      background-color: #CFD8DC !important;
      color: white;
    }
`]

})
export class UserComponent {
    name = 'Angular';
    address: address;

    divHtml = "<p>caokaiqqq</p>";
    inputtext:any
    hobb:string[]
    constructor(private HttpService:HttpService,private router:Router) {
        this.address = {
            street:"cangqian",
            state:"hangzhou"
        }
        this.hobb = ["mo","read"];
        this.HttpService.getPost().then(
            post => {
                alert("成功");
                console.log(post);
            }
        ).catch(error => {
            alert(error);
        })
        //编码成base64
        var dic = {
            name:"cao",
            age:12
        }
        var base64 = btoa(JSON.stringify(dic));

        console.log(atob(base64));
        //解码成base64
    }
    addHobby(hobby:string){
        alert(hobby);
        this.router.navigate(['/about',{}]);

    }
alert(){

}
}
//定义接口
export interface address {
    street:string,
    state:string
}


路由的使用

在app下创建一个app.routing.ts 

import {ModuleWithProviders} from '@angular/core';
import {Routes,RouterModule} from '@angular/router';
import {AboutComponent} from  './component/about.component';
import {UserComponent} from './component/user.component';
import {AppModule} from "./app.module";
第一步还是引入相关的框架

随后是路由appRoutes的定义

const appRoutes:Routes = [
    {
        path:'',
        component:UserComponent
    },
    {
        path:'about',
        component:AboutComponent
    }
];
path表示相关的路由 component表示使用相关的界面

随后将这个appRoutes定义的export出去即可 全部的代码如下

/**
 * Created by hcnucai on 2017/3/2.
 */
import {ModuleWithProviders} from '@angular/core';
import {Routes,RouterModule} from '@angular/router';
import {AboutComponent} from  './component/about.component';
import {UserComponent} from './component/user.component';
import {AppModule} from "./app.module";
const appRoutes:Routes = [
    {
        path:'',
        component:UserComponent
    },
    {
        path:'about',
        component:AboutComponent
    }
];
export const routing:ModuleWithProviders =RouterModule.forRoot(appRoutes);
在Index.html中的使用 首先是最起码的url /

  <body>
   <base href="/">
    <my-app>Loading AppComponent content here ...</my-app>
  </body>
随后可以在一般的html中 可以用router-link来进行跳转

import { Component } from '@angular/core';

@Component({
  moduleId:module.id,
  selector: 'my-app',
  template:'<ul><li><a routerLink = "/">home</a> </li>' +
  '<li><a routerLink="/about">about</a> </li></ul>' +
  '<router-outlet></router-outlet>'
})
export class AppComponent {
}

这样就可以在路由中进行跳转

在代码中也可以进行跳转

      this.router.navigate(['/about',{}]);
后面表示相关引用的参数 这样即可

关于httpService的学习

import {Injectable} from '@angular/core';
import {Http,JsonpModule} from  '@angular/http';
import 'rxjs/add/operator/toPromise';
通过promise来进行返回

//记下本服务的元数据
@Injectable()
export class HttpService {
    constructor(private http:Http) {
        console.log("Post Service init");
    }
    //发起请求的方法
    getPost():Promise<any[]> {
        var param = {
            authtoken: "0B849459E30161BE5A5E302F257022FA1FCF5D09E7BD2A2D",
            count: 100,
            page: 1
        }
        return this.http.post("http://dodo.hznu.edu.cn/apiteach/courselist",param,{})
            .toPromise()
            .then( response => {

               let res =  response.json();

               if(res.retcode != 0){
                   return Promise.reject(res.message);
               }else
                   return Promise.resolve(JSON.stringify(response.json().items));
            })
            .catch(error => {
                return Promise.reject(error);
            });
    }

}

传进参数即可

返回promise 这个参数 @injectable来表示引用相关的元数据

以上就是对angular2的相关总结

ionic 也是和angular2差不多

在app.module.ts中

 imports: [
    IonicModule.forRoot(MyApp,{
      menuType: 'push',
      platforms: {
        ios: {
          menuType: 'overlay',
        }
      },
    })
  ],
表示用MyApp中来进行引用

其他大致如此 可以在theme的variables.scss中改变相关的默认属性

例如$color等属性















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1 简介 1、Native APP(原生) 2、Hybrid APP(混合) 3、React Native Hybrid App按网页语言与程序语言的混合,通常分为三种类型:多View混合型,单View混合型,Web主体型。 2 技术 2.1 技术选型 Ionic 2.1.1 Ionic介绍 Ionic是一款基于Angular、Cordova的强大的HTML5移动应用开发框架,可以快速创建一个跨平台的移动医用。可以快速开发移动APP、移动WEB页面、微信公众平台应用,混合APP WEB页面。 2.1.2 Ionic和cordova、Angular关系 Ionic = cordova + Angular + ionic Css Ionic 是完全基于谷歌的 Angular 框架,在 Angular 基础上面做了一些封装,让我们可以更快速和容易的开发移动的项目。Ionic 调用原生的功能是基于 Cordova,Cordova 提供了使用JavaScript 调用 Native 功能,ionic 自己也封装了一套漂亮的 CSS UI 库。 2.1.3 开发工具 Visual Studio Code 2.1.4 管理工具 Git 2.2 环境搭建 2.2.1 概述 2.2.2 JDK 2.2.2.1 版本 jdk1.8 2.2.2.2 配置 JAVA_HOME PATH CLASSPATH 2.2.3 Apache ant 2.2.3.1 版本 1.9.12 2.2.3.2 解压 2.2.3.3 配置 ANT_HOME: D:\android\apache-ant-1.10.4 Path: %ANT_HOME%\bin 2.2.3.4 查看安装版本 ant –v 2.2.4 android SDK 2.2.4.1 版本 r24.4.1 2.2.4.2 配置 ANDROID_SDK_HOME: D:\Android\android-sdk-windows Path:%ANDROID_SDK_HOME%\platform-tools;%ANDROID_SDK_HOME%\tools 2.2.4.3 SDK 通过SDK Manager下载相关的版本 2.2.4.4 查看信息 android -h 2.2.5 node.js 2.2.5.1 版本 8.11.3 2.2.5.2 安装 2.2.5.3 查看版本 node –v npm -v 2.2.6 npm/cnpm 2.2.6.1 安装npm nodejs已经集成了npm 2.2.6.2 安装 cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org 2.2.7 cordova 2.2.7.1 版本 8.0.0 2.2.7.2 安装 npm install -g cordova 可以使用cnpm代替npm cnpm install -g cordova ionic 2.2.7.3 查看版本 cordova -v 2.2.8 ionic 2.2.8.1 版本 3.20.0 2.2.8.2 安装 npm install –g ionic 可以使用cnpm代替npm cnpm install -g cordova ionic 2.2.8.3 查看版本 ionic –v 2.2.8.4 查看信息 ionic info 3 项目 3.1 创建 3.1.1 新建 3.1.2 启动 3.1.3 打包 3.1.3.1 添加 3.1.3.2 生产release版apk(签名后安装) 3.1.3.3 生成debug版apk 3.1.4 签名 3.1.4.1 生成签名文件 keytool -genkey -v -keystore testapp.keystore -alias testapp.keystore -keyalg RSA -validity 20000 3.1.4.2 apk签名 jarsigner -verbose -keystore testapp.keystore -signedjar app-release-signed.apk app-release-unsigned.apk testapp.keystore 3.1.5 安装 安卓手机安装使用

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值