直到使用bower开始编写Material Design的AngularJS应用程序

(10/6对于字体的补充说明在下面。)


我想创建一个AngularJS应用程序,但我也想使它的设计更加现代化,所以想采用Material Design。因此,考虑使用Angular Material。

以下是Angular Material的页面。

需要满足的条件是,已安装了node.js和git客户端。

安装bower。

bower是一款优秀的工具,它可以为前端开发安装必需的包。

关于Bower,这篇文章提供了详细的信息。

安装步骤如下。

npm install bower -g

如果有-g选项,则会进行全局安装;如果没有,则会安装在当前目录下。
如果进行全局安装,无论项目如何,都可以使用bower,所以我认为最好进行全局安装。

安装库。

我希望使用Angular Material这个库,因为它可以用于创建符合Material Design风格的Angular应用程序。

为了使用Angular Material,除了AngularJS本身之外,还需要安装额外的模块angular-animate和angular-aria。但是使用bower安装angular-material时,这些模块将一并安装,非常方便。

此外,bower.json可以包含包的信息。如果在bower环境中使用bower.json安装包,只要仓库中有bower.json,开发者就可以通过bower来配置各自的环境。这非常方便。

另外,当执行bower命令时,会在当前目录下创建一个名为bower_components的文件夹,并在其中安装各种库文件。由于我想要将库的安装位置和bower.json的位置分开,所以打算创建一个名为.bowerrc的文件,在其中进行安装目标的设置。

关于.bowerrc的详细信息,请参考以下文章:
http://qiita.com/sys1yagi/items/0a7b13395cf5c16ecd57

创建开发目录和创建.bowerrc文件。

首先创建一个开发目录,并将.bowerrc文件保存在其中。然后,在开发目录的直接下级创建一个名为”public”的目录。我认为.bowerrc文件的内容可以如下所示。

{
  "directory": "public/components",
  "json": "bower.json"
}

考虑到开发需要,将配置文件等放置在开发目录的下层,而实际发布的页面放置在public目录之下。然后,将所需的库文件放置在public/components目录之下,只需部署public目录,即可查看网站。这样设计了一个目录结构。

+ [開発用ディレクトリ]
    + .boewrrc
    + [public]

创建bower.json

打开命令提示符,将当前目录更改为开发目录。然后输入以下命令。

bower init

当问题出现时,可以默认回答所有问题。初次安装时,也不需要选择任何选项。如果回答”Looks good?”的问题(只需按下回车键即可),则会在执行bower init命令时,在当前目录下创建一个bower.json文件。

这样一来,开发目录的根目录下就创建了一个bower.json文件。

+ [開発用ディレクトリ]
    + .boewrrc
    + bower.json
    + [public]

安装 Angular-Material。

bower install angular-material --save

如果有save选项,angular-material会被添加到bower.json的dependencies中。这意味着,只要在bower.json所在的位置运行bower install,angular-material也会被安装。这对于团队开发或者有多台开发机器的情况非常方便。

此外,即使突然安装angular-material,它也会自动下载所需的库,非常方便。

+ [開発用ディレクトリ]
    + .boewrrc
    + bower.json
    + [public]
        + [components]
            + [angular]
            + [angular-animate]
            + [angular-aria]
            + [angular-material]

我试试写一下

这段代码要复制来,但是需要做一些改动才行…。

创建hello.js

var app = angular.module('StarterApp', ['ngMaterial']);

app.controller('AppCtrl', ['$scope', '$mdSidenav', function($scope, $mdSidenav){
  $scope.toggleSidenav = function(menuId) {
    $mdSidenav(menuId).toggle();
  };

}]);

把它保存为hello.js,在public文件夹下。

+ [開発用ディレクトリ]
    + .boewrrc
    + bower.json
    + [public]
        + hello.js
        + [components]
            + [angular]
            + [angular-animate]
            + [angular-aria]
            + [angular-material]

你好.css的创建

一样地

.md-toolbar-tools h1 {
  font-size: inherit;
  font-weight: inherit;
  margin: inherit;
}

将它保存为hello.css,在public文件夹下。

+ [開発用ディレクトリ]
    + .boewrrc
    + bower.json
    + [public]
        + hello.js
        + hello.css
        + [components]
            + [angular]
            + [angular-animate]
            + [angular-aria]
            + [angular-material]

创作index.html

先把HTML源码全部复制,然后粘贴到index.html中保存在public文件夹下。

然后,在body元素中。

<link rel="stylesheet" href="./hello.css">

请在body闭合标签的上方立即添加

<script src="./hello.js"></script>

添加。

暂时只需一种选项。
现在将显示一个标题为“Hello World”的页面。

+ [開発用ディレクトリ]
    + .boewrrc
    + bower.json
    + [public]
        + hello.js
        + hello.css
        + index.html
        + [components]
            + [angular]
            + [angular-animate]
            + [angular-aria]
            + [angular-material]

修订 index.html

将从CDN获取的js文件和css文件路径修改为从./components/文件夹下获取。

请更改index.html文件。

既然这样,我想贴上一些更有活力的东西。我认为标签之类的东西很明显很好。

从标签直接删除到处,然后将以下源代码粘贴进去。

<div ng-cloak>
  <md-content class="md-padding">
    <md-tabs md-dynamic-height md-border-bottom>
      <md-tab label="one">
        <md-content class="md-padding">
          <h1 class="md-display-2">Tab One</h1>
          <p>Hello</p>
        </md-content>
      </md-tab>
      <md-tab label="two">
        <md-content class="md-padding">
          <h1 class="md-display-2">Tab Two</h1>
          <p>Hello, hello.</p>
        </md-content>
      </md-tab>
      <md-tab label="three">
        <md-content class="md-padding">
          <h1 class="md-display-2">Tab Three</h1>
          <p>3 + 4 = {{3+4}}</p>
        </md-content>
      </md-tab>
    </md-tabs>
  </md-content>
</div>

当点击选项卡时,将显示一个从点击位置开始扩散的动画,并且在Tab Three中放置了一个Angular表达式。如果AngularJS正常运行,将显示3 + 4 = 7。

总结

使用bower可以很方便地安装Angular Material。非常方便。

追加记录

由于https://material.angularjs.org/0.11.2/#/getting-started中的源代码是基于Angular Material 0.9.4编写的,因此源代码已经过时。具体来说,字体已经过时,需要进行修正。

将字体从RobotoDraft更改为Roboto。

    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic">

另外,通过调整浏览器宽度,可以实现侧边导航的显示开关。我没注意到改变浏览器宽度会有变化…

广告
将在 10 秒后关闭
bannerAds