Giter Club home page Giter Club logo

boilerplate-angular-component's Introduction

The component pattern

Build Status Dependency Status devDependency Status

Credit goes to Tero Parviainen for writing about this pattern.

Key principles are:

isolate scope

The scope definition explicitly defines what date can be handed to the component. It does not inherit from a parent scope. You can think of this as its "API".

controller replaces link function

To write and run unit tests easily, use a controller.

template

If a comComponents have a one-to-one correspondence with HTML templates.

Further goodies

Beyond the original writeup of the component pattern, we can optimize even more.

controllerAs

Internally, the directive should always refer to its controller as ctrl. This creates reusable and more maintainable code.

avoid $scope in controller

Avoid using $scope in your controllers to set values if possible. You can use this.something = "value" in controllers and refer to ctrl.something in your template. You will need to use $scope to access data handed to the isolate scope, though.

fs.readFileSync the template

If your component has a template, then fs.readFileSync it. This is made possible by the browserify transform brfs.

Build process

This boilerplate is build using npm scripts.

npm run serve opens browser for development with livereload.

npm run dist creates browserify bundles in dist/ folder.

npm test runs the tests.

npm run watch executes npm test when index.js changes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.