Angular4记账webApp练手项目之二(在angular4项目中使用Angular WeUI)

2018-08-21 15:21:34 浏览数 (1)

写在前面

在angular4项目中 例子是基于之前文章:利用angular-cli构建Angular4.X项目 可以参考官网:https://cipchk.github.io/ngx-weui/#/docs/start

本来是写在后面的回顾,感觉放在前面比较好。

1、如何使用第三方库,安装-引用(主要参考官方文档) 2、{{}}指令,单向绑定数据,声明数据-绑定数据 3、[(ngModel)]指令,双向绑定数据,声明数据-绑定数据 4、*ngFor指令,循环渲染 5、[ngStyle] 指令,动态绑定样式。 更多angular指令及用法参看官网。

安装及引用

安装

代码语言:javascript复制
npm install angular-weui --save

安装后还需要引用weui 样式以及我们的font-awesome图标苦,在我们项目index.html中引用

代码语言:javascript复制
<!-- index.html -->
<link href="//res.wx.qq.com/open/libs/weui/1.1.2/weui.min.css" rel="stylesheet">
  <link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

我们还要在app.module.ts中添加引用

代码语言:javascript复制
import { WeUIModule } from 'angular-weui';

imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    WeUIModule  // 这里也要添加
  ],

修改菜单组件

在app.component.html添加菜单组件

代码语言:javascript复制
<app-menu></app-menu>

我们参照官网简化使用了tabbar组件,修改menu.component.html如下:

代码语言:javascript复制
<weui-tabbar>
  <weui-tabbar-item>
    <span class="weui-tabbar__icon">
      <i class="fa fa-edit"></i>
    </span>
    <p class="weui-tabbar__label">记账</p>
  </weui-tabbar-item>
  <weui-tabbar-item>
    <span class="weui-tabbar__icon">
      <i class="fa fa-bar-chart"></i>
    </span>
    <p class="weui-tabbar__label">统计</p>
  </weui-tabbar-item>
</weui-tabbar>

浏览器中查看,菜单成功创建

这里写图片描述

修改记账组件

在app.component.html添加记账组件

代码语言:javascript复制
<app-menu></app-menu>
<app-accounting></app-accounting>

在accounting.component.ts中添加一些数据如下:

代码语言:javascript复制
export class AccountingComponent implements OnInit {
  money = ''; // 金额
  billTypes = []; // 记账类型
  constructor() {
    let n = 0;
    while (n < 20) { // 模拟一些数据
      this.billTypes.push({name: '食物',  id: n});
      n  ;
    }
  }
  ngOnInit() {

  }

}

修改accounting.component.html文件布局,添加标题,金额输入框,记账类型选择按钮

代码语言:javascript复制
<!-- 标题 -->
<weui-navbar >
  <weui-navbar-item >理财从记账开始</weui-navbar-item>
</weui-navbar>

<div style="margin-top: 50px;">
  <!-- 金额输入框 -->
  <weui-input type="number" name="num" placeholder="请输入金额" [(ngModel)]="money">
    <label class="weui-label">¥</label>
  </weui-input>
  <!-- 九宫格按钮 -->
  <div class="weui-grids">
    <a href="javascript:;" class="weui-grid" *ngFor="let b of billTypes">
      <div class="weui-grid__icon">
        <i class="fa fa-2x fa-bar-chart"></i>
      </div>
      <p class="weui-grid__label">{{b.name}}</p>
    </a>
  </div>
</div>

在页面中查看,发现底部菜单和顶部标题,也跟着滚动。

这里写图片描述

解决上面问题,有两个思路,1、固定底部和顶部,2、固定中间按钮。 我选择固定中间按钮,使用动态绑定样式让中间部分的高度等于页面高度-底部和顶部的高度,设置overflo为scroll; 在accounting.component.ts中添加样式数据如下:

代码语言:javascript复制
  contentStyle = {   // 绑定的样式
    'overflow': 'scroll',
    'height': window.screen.availHeight - 145   'px'
  };

在accounting.component.html绑定样式

代码语言:javascript复制
<div class="weui-grids" [ngStyle]="contentStyle">

完成

这里写图片描述

引用非样式的组件

例如提示框组件 html中添加元素

代码语言:javascript复制
<weui-toptips [content]="toastText" #TopTip></weui-toptips>

ts文件中引入使用

代码语言:javascript复制
import {WeUITopTips} from 'angular-weui';
代码语言:javascript复制
 @ViewChild('TopTip') TopTip: WeUITopTips;
  toastText= '';
    add(id: number) {
       this.alert(id.toString());
  }
    /// 自己封装的消息提示
  private alert(msg) {
    this.toastText = msg;
    this.TopTip.show();
  }

0 人点赞