Skip to content

Urigo/angular-meteor-legacy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Join the chat at https://gitter.im/Urigo/angular-meteor

The power of Meteor and the simplicity and eco-system of AngularJS

ng-conf

Quick start

Meteor Project

  1. Install Meteor $ curl https://install.meteor.com | /bin/sh
  2. Create a new meteor app using $ meteor create myapp or navigate to the root of your existing app
  3. Install Angular $ meteor add angular-legacy

Meteor client side - with Bower

Use Meteor as a service in your existing non Meteor angular application

  1. Install meteor-client-side $ bower install meteor-client-side
  2. Install angular-meteor $ bower install angular-meteor-legacy

Resources

Contributing

We would love contributions in:

  1. Code
  2. Tutorial - our goal with the tutorial is to add as many common tasks as possible. If you want to create and add your own chapter we would be happy to help you writing and adding it.
  3. Roadmap - you can add a card about what you want to see in the library or in the tutorial.
  4. I (Urigo) live around the world with one small bag, so another way of contributing can be by offering me a place to sleep somewhere interesting around the world that I have to see :)

If you want to contribute and need help or don't know what should you do, you can contact me directly

Contributor Developer Setup

Run local angular-meteor in your project

Create your Meteor Project

meteor create myProject
cd myProject

Fork angular-meteor-legacy and clone the angular-meteor-legacy library to another directory named angular-legacy

mkdir angular-legacy
git clone https://github.com/[your_username]/angular-meteor-legacy.git angular-legacy

Create a packages directory under your project's root folder and link your forked repo

cd myProject
mkdir packages
cd packages
ln -s ~/path_to_your_repos/angular-legacy

Now you can start using your own copy of the angular-meteor-legacy project from myProject.

Running tests

In the command line

. run_tests.sh

Then go to localhost:3000 in your browser

Contributing to documentation and tutorials.

Whether it's a typo, some clarification, or a whole new feature - here's how to get started:

  1. Follow the steps to get started as a developer for angular-meteor.
  2. Change into the .docs directory and then angular-meteor cd .docs/angular-meteor
  3. Run the app for the documentation meteor
  4. Start tweaking and updating!

Usage

Table of Contents

App initialization

Register angular-meteor as a module in our application:

angular
  .module('myModule', ['angular-meteor']);

More in step 0 in the tutorial

Templating

Before writing any angular templates, make sure to remove blaze-html-templates first, so there won't be any conflicts with the templates engines:

blaze-html-templates

Please note that the names of the templates to Angular will be their URL as Meteor sees it when minifying the html files. Hence every template URL is relative to the root of the Meteor project, and contains no leading forward slash. This is important to note when working with ng-include to include templates.

client/index.html:

<head>
    <title>Angular and Meteor</title>
</head>

<body ng-app="myModule">
    <ng-include src="'client/views/user.html'"></ng-include>
    <ng-include src="'client/views/settings.html'"></ng-include>
</body>

client/views/user.html:

<div>
    <label>Name:</label>
    <input type="text" ng-model="yourName" placeholder="Enter a name here">

    <h1>Hello {{yourName}}!</h1>
</div>

More in step 0 of the tutorial

Binding to Meteor Collections

angular-meteor provides 3-way data binding (view-client-server) by tying a Meteor collection to an Angular model. The API to accomplish this is $meteor.collection.

$scope.todos = $meteor.collection(Todos);

More in step 3 of the tutorial

Subscribe

$meteor.subscribe is a wrapper for Meteor.subscribe that returns a promise.

Here's an example of how to tie a Meteor collection to a clean Angular model in the form of an array:

$meteor.subscribe('Todos').then(function () {
    $scope.todos = $meteor.collection(Todos);
});

More in step 9 of the tutorial

Routing

Use to official AngularUI ui-router Meteor package - angularui:angular-ui-router

More on how to actually use angular-ui-router in step 5 of the tutorial

<blaze-template>

Include Blaze templates in your angular-meteor application.

Use the urigo:angular-blaze-template package.

User Authentication

angular-meteor provides complete support for the Meteor accounts system. more details here - Documentation.

More in step 8 of the tutorial

Meteor methods with promises

$meteor.call calls a Meteor method and returns a promise.

$meteor.call('addUser', username).then(function (data) {
    console.log('User added', data);
});

More in step 14 of the tutorial

Bind Meteor session

$meteor.session binds a scope variable to a Meteor Session variable.

$meteor.session('counter').bind($scope, 'counter');

Additional packages

The following is a non-exhaustive list of Meteor packages common Angular libraries:

Feel free to make more Angular packages and add them to that list as well.

Acknowledgement

This project started as ngMeteor, a pre-0.9 meteorite package. Since then a lot has changed but that was the main base.

Also, a lot of features were inspired by @superchris's angular-meteor fork of ngMeteor

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages