搭建 Famo.us/Angular 的开发环境(2014年11月版)

Famo.us/Angular的环境设置步骤和验证操作至今的情况。

可以下载并使用库的 zip 文件,但是这是为了在 AngularJS 中编写附加逻辑并设置前端环境(如构建任务等)而设定的环境。

首要条件

手元のOS:Mac OS X 10.9.5 (Mavericks)

Yeoman と、Yeoman の AngularJS雛型ジェネレータ を使います。

もし Yeoman が Mac に入っていなければ、こちらを参考にインストールしてください。

Mac で Yeoman の環境を構築する手順

もし雛型ジェネレータが Mac に入っていなければ、次のようにインストールしてください。

$ npm install -g generator-angular

今回、利用するツール/ライブラリ郡の細かいバージョンは次のとおり。

Yeoman:1.3.2

Yeoman の generator-anglar:0.10.0

AngularJS:1.2.26 ※ 1.3系では動きませんでした

Famo.us:0.3.0

famous-angular:0.5.0

步骤 (bù

在合适的目录中创建一个文件夹并启动生成器。

$ mkdir famous_angular_test
$ cd famous_angular_test
$ yo angular

如果您想用CoffeeScript编写,请添加–coffee选项。

将对话界面进行适当推进。

由于明显是多余的,我们将去除 Bootstrap。

screen1.png

文件应以以下方式展开。

screen2.png

用Bower安装Famo.us/Angular。

$ cd famous_angular_test
$ bower install famous-angular --save

如果有人问你选择哪个版本的AngularJS,就随便选一个(无论如何之后要升级到1.2系列)。

将AngularJS和相关模块的版本降级至1.2系列。

{
  "name": "famous-angular-test",
  "version": "0.0.0",
  "dependencies": {
    "angular": "~1.2.0",
    "json3": "~3.3.1",
    "es5-shim": "~3.1.0",
    "angular-resource": "~1.2.0",
    "angular-cookies": "~1.2.0",
    "angular-sanitize": "~1.2.0",
    "angular-animate": "~1.2.0",
    "angular-touch": "~1.2.0",
    "angular-route": "~1.2.0",
    "famous-angular": "~0.5.0"
  },
  "devDependencies": {
    "angular-mocks": "~1.2.0",
    "angular-scenario": "~1.2.0"
  },
  "appPath": "app"
}

保存文件后,执行 $ bower install。

将 Famo.us/Angular 集成到项目中。



angular
  .module('famousAngularTestApp', [
    'ngAnimate',
    'ngCookies',
    'ngResource',
    'ngRoute',
    'ngSanitize',
    'ngTouch',
+    'famous.angular'
  ])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .when('/about', {
        templateUrl: 'views/about.html',
        controller: 'AboutCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  });


<!-- build:css(.) styles/vendor.css -->
<!-- bower:css -->
+<link rel="stylesheet" href="bower_components/famous-angular/dist/famous-angular.css" />
<!-- endbower -->
<!-- endbuild -->

〜

<!-- build:js(.) scripts/vendor.js -->
<!-- bower:js -->
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-animate/angular-animate.js"></script>
<script src="bower_components/angular-cookies/angular-cookies.js"></script>
<script src="bower_components/angular-resource/angular-resource.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
<script src="bower_components/angular-touch/angular-touch.js"></script>
+<script src="bower_components/famous-angular/dist/famous-angular.js"></script>
<!-- endbower -->
+<script src="bower_components/famous/dist/famous-global.js"></script>
<!-- endbuild -->

试一试使用

我根据Famo.us/Angular的官方参考资料尝试了一下。

控制器

'use strict';

angular.module('famousAngularTestApp')
  .controller('MainCtrl', function ($scope, $famous) {

    $scope.flipIt = function() {
      $famous.find('fa-flipper')[0].flip();
    };

    var EventHandler = $famous['famous/core/EventHandler'];
    $scope.views = [{color: 'red'}, {color: 'blue'}, {color: 'green'}, {color: 'yellow'}, {color: 'orange'}];
    $scope.myEventHandler = new EventHandler();

  });

观看

<div ng-view=""></div>
<fa-app>

  <fa-flipper>
    <fa-modifier fa-size="[200, 200]">
      <fa-surface fa-background-color="'orange'" fa-click="flipIt()">クリック!</fa-surface>
    </fa-modifier>
    <fa-modifier fa-size="[200, 200]">
      <fa-surface fa-background-color="'gray'" fa-click="flipIt()">もう一回クリック!</fa-surface>
    </fa-modifier>
  </fa-flipper>

  <fa-modifier fa-transform-order="['translate', 'rotateZ']"
               fa-rotate-z="0.3"
               fa-translate="[100, 300, 0]"
               fa-size="[100, 100]">
    <fa-surface fa-background-color="'black'"></fa-surface>
  </fa-modifier>

  <fa-scroll-view fa-pipe-from="myEventHandler">
    <fa-view ng-repeat="view in views">
      <fa-modifier fa-size="[300, 160]"
                   fa-translate="[250, 100, 0]">
        <!-- All events on fa-surfaces (click, mousewheel) are piped to $scope.myEventHandler -->
        <fa-surface fa-background-color="view.color"
                    fa-pipe-to="myEventHandler">
          上下へスクロール
        </fa-surface>
      </fa-modifier>
    </fa-view>
  </fa-scroll-view>

</fa-app>

CSS (Cascading Style Sheets) CSS(层叠样式表)

fa-app {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

保存文件后,使用$ grunt serve 进行确认验证。

请点击这里查看演示:http://hkusu.github.io/famous_angular_demo/dist/

screen3.png

最后

既经搭建好环境,接下来可以基于Famo.us/Angular的官方参考文档尝试各种功能。

提供的示例公式在此处可找到:https://github.com/thomasstreet/famous-angular-examples。

另外,我们将本次的源代码放在了 GitHub 上。如果你在环境设置方面遇到了问题,请克隆代码。⇒ https://github.com/hkusu/famous_angular_demo

广告
将在 10 秒后关闭
bannerAds