LoginSignup
0
0

More than 5 years have passed since last update.

Aurelia翻訳ログ (docs.html 4/13 line: 243 to 1060)

Posted at

引き続き翻訳しています。この間にも、3個くらいのpull requestがマージされており、コンフリクトしないかドキドキです。

テンプレートコントローラー

ifrepeat などを従来はテンプレートコントローラーと呼んでいたのですが、カスタム属性と呼ぶことにしたようです。(挙動は代わりません)

これはわかりやすさの観点で良い変更です。どちらもHTMLエレメントの属性として使うので、名前から使い方が想起できるようになったと思います。

ただ内部的な挙動は変わっておらず、そのため、ifやrepeatっぽいものを自分で作るときには、テンプレートコントローラーという概念が出てきます。うーん、このあたりは進化するにつれて整理されていくでしょう。

wan't

811行目。これをwon't のtypoだと思って翻訳していましたが、wantのtypoでした。。。逆ですね。

カスタム属性の定義方法

デコレータの導入により、カスタム属性(旧 Attached Behavior)の定義方法が変わっています。

以前はstaticメソッドやプロパティで Behavior オブジェクトを返す必要がありましたが、デコレータでスッキリ書けるようになっています。

import {inject, customAttribute} from 'aurelia-framework';

@customAttribute('show')
@inject(Element)
export class Show {
  constructor(element) {
    this.element = element;
  }

  valueChanged(newValue){
    if (newValue) {
      this.element.classList.remove('aurelia-hide');
    } else {
      this.element.classList.add('aurelia-hide');
    }
  }
}

オプションプロパティ

上記だと単一の属性しか指定できませんが、複数指定するオプションプロパティというものがあります。以前はこれもメタデータ + fluentAPIで一個づつ設定していましたが、デコレータを使って簡潔にかけるようになっています。

import {customAttribute, bindable} from 'aurelia-framework';

@customAttribute('my-attribute')
export class MyAttribite {
  @bindable foo;
  @bindable bar;
}

また、これをいちいち宣言しなくても、実行時にマップしてくれる @dynamicOptions というデコレータも追加されました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0