経緯 Python3でのWebサイト構築を試みていたのだけど、諸般の事情で表題の技術セットに変更。 乗っける先としてはGAEというのは変えず、クライアントフレームワークとWebAPIの組み合わせにする。 WebAPIにする都合上、Cloud Endpoints を使用する。 環境 開発端末:Linux(Ubuntu 17.10) 言語: フロントエンド:TypeScript(未定) バックエンド:Java(v1.8.0_181) フレームワーク: フロントエンド:Angular(未定) バックエンド:? <前提> GCPはアカウント取得済み。 Google Cloud SDK取得・認証済み。 今日のお題 リリース第1弾として実装する機能のピックアップ 機能の簡単なAPI定義 ■リリース第1弾として実装する機能のピックアップ Webサイトの主題が「本棚自慢」なので、自慢する本棚(の画像)を登
Angularにおけるバリデーションの基礎を解説していきます。 今回は、 バリデーションの使い方 Angularのビルトインバリデーションの種類 をやっていきます。 前回の振り返り 前回は、Angularの Reactive forms を学びました。 今回も Reactive forms は出てきますので、もしわからなくなったら前回に戻って思い出してみてください。 この記事のソースコード このAngular入門は、動くソースコードをすべて公開しています。 (記事ごとにブランチを分けています) https://github.com/seteen/AngularGuides/tree/入門その08 バリデーションの使い方 Angularにおけるバリデーションはとても簡単です。 ほとんどHTMLの中で完結します。 まずは、 product-edit.component の name の項目に対
③ MIMEタイプ設定 S3にアップロードされるすべてのファイルについて、適切なMIMEタイプを設定する必要があります。指定されていない場合、S3はデフォルトで 'application / octet-stream'になり、ブラウザによって解釈されレンダリングされる代わりにファイルがダウンロードされます。ファイルをそれぞれのMIMEタイプに手動でマッピングするのを避けるために、ここではヘルパーライブラリをインストールします。 const AWS = require("aws-sdk"); // imports AWS SDK const mime = require('mime-types') // mime type resolver const fs = require("fs"); // utility from node.js to interact with the file
Material Iconにビッタリくるようなものがないならカスタムアイコンを追加しよう。 どこかのライブラリにいかしたものがあるならそれでいいし、自分で作ったものでもよい。 追加したいフォントファイルをどこかに置く 例えばこれを追加することにします。 https://materialdesignicons.com/ npm installしたらsvgファイルとかttfファイルとか手に入ります。npmインストールするんならnode_modules指定でいいと思うんだけど、容量削減のために加工入れるならassetフォルダに置けばいいし、CDNから引っ張りつつservice workerのキャッシュに載せるならngsw-config.jsonのurlsに記載すればよい。 Angularの中で追加する MatIconRegistryで追加登録できます。個人的にはMaterialインポート用のmo
<div class="history-table"> <table class="history-body"> <tbody> <tr *ngFor="let record of lodossWar"> <td>{{record.Year}}</td> <td>{{record.Event}}</td> </tr> </tbody> </table> </div> import { Component, Input, OnChanges, } from '@angular/core'; // jQuery用の変数宣言 declare var $; @Component({ selector: 'history-component', templateUrl: './history.component.html' }) export class HistoryComponent imple
概要 前回の【エラー解決】Angularでerror TS1005: ',' expected.のエラーの解決 に引き続き、Angularのエラーについて。 今回はGoogle Chromeのデベロッパーツール(検証モード)でエラーが出たので、その解決方法を書きます。 エラー内容 ERROR TypeError: Cannot read property 'city' of undefined 'city' の中は、人それぞれプロパティ命名が違うことに注意。 このエラーが出た場合は、以下のように解釈すると良い。 プロパティが存在しないため、city プロパティを読み取れません。 つまり、cityプロパティの前の上位のオブジェクトを疑ってみる。 このエラーの場合、Google Chromeのデベロッパーツール(検証モード)上で、(RentalListItemComponent.html:5)
#フォームとは フォームタグで囲われ、input、selectなどを使ってデータを生成しサーバーに送信するもの Angularでは容易に実装できるAPIが用意されている Angularでフォームを利用するためにはFormsModuleをインポートする FormsModuleは「テンプレート駆動フォーム」と呼ばれる形式のフォームを実装するためのモジュール #フォームの作成 app.module.tsを下記のように実装 import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import {FormsModule} from '@angular/forms'; import { AppComponent } from './app.component
Ionic/Angularでは、TypeScriptを採用しているので、APIからのレスポンスを型定義します。で、常々、「バックエンドでも型定義をして、それをフロントエンドと共有できたら最強では」と思っていたのですが、先日Angularから強い影響を受けたTypeScript製Node.jsフルスタックフレームワーク「NestJS」の存在を教えてもらいました。 どのようなものかは 【Node.js】TypeScript製Node.jsフルスタックフレームワーク Nest 導入編をご覧ください。 これを採用したことにより、今はInterfaceをフロントエンド・バックエンドで共有できていて、とても快適に開発を進めていたのですが、「いざ公開」の段になって、Lambda + API Gatewayで苦戦したのでまとめておきます。 Lambdaで公開する手順 Serverless Framewor
Angularでの HTTP 通信のやり方を解説していきます。 サーバ側は、Firebaseを使います。 Firebaseの Realtime Database は、使いやすいREST API を用意してくれているので、これを利用していきます。 なお、Firebaseを普通に使うだけなら、ライブラリでやったほうが良いです。 今回は、AngularのAPI通信部分の学習のためにREST API を使っていきます。 FirebaseライブラリのAngularプロジェクトへの追加(セットアップ) FirebaseのREST APIの仕様 AngularにおけるHTTPのGETメソッド 前回の振り返り 前回は、Angularでの自作のバリデーションを学びました。 今回の内容とは、少し離れていますが、バリデーションはとても大切なので読んでない方はぜひ読んでおいてください。 この記事のソースコード h
ざっくり印象 BackboneはJSでMVCアーキテクチャするための必要最低限だけサポート。Angularはフルスタック。 まずBackboneを押さえて、それからAngularを覗いてみるというのがオススメの模様。 Backboneの方が薄く、拡張の自由度高い。その代償として大人数では一定のアーキテクチャを縛るルール/構造を作らないと破綻するリスクあり。 テストは他のテスティングフレームワークをカスタムで組み合わせて使う必要あり。 Railsからの連携サポートは厚い。 Angularは仕様が膨大だが、ハマる処理はとんでもなくシンプルに書ける。ただし、少し外れたことをしようとすると膨大な仕様の山を漁ることにはなる。フレームワークの縛りが大きく、人が違ってもかなりの程度、作りは統一される。 チュートリアルは、実は単純化されすぎていて、実際のアプリではもう少しいろいろ構造化等を施さないといけな
https://egghead.io/ のAngular.jsのビデオを見ながら, 分からないことは調べるといった感じでAngularと戯れてきました。 ビデオチュートリアルは好きなんですが、終わった後分からない箇所なんかをもう一回探すのが煩わしかったりするので、理解の確認を兼ねてここに書いていこうと思います。 全部を書きくだしてるわけではないですし, 有料コンテンツは当然ここには写経しませんので, 腰を据えて勉強したい方はご自身で上の動画を見ていった方が良いと思います〜(^_^;) 次回: Angular.js入門 (2)コントローラ 導入 最初のhtmlは下記のようになります。 <!doctype html> <html lang="en" ng-app> <head> <meta charset="UTF-8"> <title></title> </head> <body> <h1>
「まだ早い!!」 @armorik83です。時間ができたのでng-japan終了後、ようやくAngular 2を触ることができました。導入が想像以上にきつく、ES6やコンパイルといった昨今のJS事情に詳しくなければ、alpha段階で触るのは避けたほうがいい、というのが現段階での印象です。 足を踏み入れたのが早すぎるだけで、時間が解決するものだと思っています。 (150415追記: かなり解決されてきたので書きました → どうしても今Angular 2 with Babelを触ってみたい人のためのビルドスクリプト) 何が険しいか 文章化する体力が残されていないので箇条書きで。 traceur-compiler npm i angular2して落ちてくるAngular 2のJavaScriptソースがすべてtraceur-compilerのランタイムに依存している すでにES5化されているため
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く