JavaScript 客戶端框架—Aurelia

edithfang發表於2015-01-28

特性:

  • 前瞻性:採用 ES6 和 ES7 編寫,整合很多 Web 元件,無外部依賴
  • 先進的架構
  • 雙路資料繫結
  • 可擴充套件 HTML
  • 路由和 UI 元件
  • MV* 模式
  • 支援多種語言:ES 6&7、TypeScript、CoffeeScript 等
  • 可測試


基礎頁面 index.html:

<!doctype html>
<html>
  <head>
    <link rel="stylesheet" type="text/css" href="jspm_packages/github/twbs/bootstrap@3.3.2/css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="jspm_packages/npm/font-awesome@4.2.0/css/font-awesome.min.css">
    <link rel="stylesheet" type="text/css" href="styles/styles.css">
  </head>
  <body aurelia-app>
    <script src="jspm_packages/system.js"></script>
    <script src="config.js"></script>
    <script>
      System.baseUrl = 'dist';
      System.import('aurelia-bootstrapper').catch(console.error.bind(console));
    </script>
  </body>
</html>


app.js:
export class Welcome{
  constructor(){
    this.heading = 'Welcome to the Aurelia Navigation App!';
    this.firstName = 'John';
    this.lastName = 'Doe';
  }
 
  get fullName(){
    return `${this.firstName} ${this.lastName}`;
  }
 
  welcome(){
    alert(`Welcome, ${this.fullName}!`);
  }
}


app.html
<template>
  <section>
    <h2>${heading}</h2>
 
    <form role="form" submit.delegate="welcome()">
      <div class="form-group">
        <label for="fn">First Name</label>
        <input type="text" value.bind="firstName" class="form-control" id="fn" placeholder="first name">
      </div>
      <div class="form-group">
        <label for="ln">Last Name</label>
        <input type="text" value.bind="lastName" class="form-control" id="ln" placeholder="last name">
      </div>
      <div class="form-group">
        <label>Full Name</label>
        <p class="help-block">${fullName}</p>
      </div>
      <button type="submit" class="btn btn-default">Submit</button>
    </form>
  </section>
</template>
評論(1)

相關文章