Hybrid(1)ionic Cordova meteor

Hybrid(1)ionic Cordova meteor

After reading a lot of documents, cordova is similar to phoneGap. ionic is focus on mobile UI and based on cordova/phoneGap. Meteor seems provide both browser and hybrid. Let try that first.

1. Meteor Installation
Just a simple command to install that on MAC
> curl https://install.meteor.com/ | sh

Try to create the first project
> meteor create easymeteor

That will generate all the html, css and JS files there.
> meteor

Visit the http://localhost:3000/ to see the first page.

2. Try TODO Example
the HTML file easymeteor.html file will be
<head>
<title>Todo List</title>
</head>

<body>
<div class="container">
<header>
<h1>Todo List</h1>
</header>

<ul>
{{#each tasks}}
{{> task}}
{{/each}}
</ul>
</div>
</body>

<template name="task">
<li>{{text}}</li>
</template>

The JS file easymeteor.js will be as follow:
// simple-todos.js
if (Meteor.isClient) {
// This code only runs on the client
Template.body.helpers({
tasks: [
{ text: "This is task 1" },
{ text: "This is task 2" },
{ text: "This is task 3" }
]
});
}

if (Meteor.isServer) {
Meteor.startup(function () {
// code to run on server at startup
});
}

Meteor parses all the HTML files in app folder and identifies three top-level tags: <head>, <body> and <template>

template can be used in HTML as {{> templateName }} or in JavaScript as Template.templateName.

We can pass the data from JS to HTML template via helpers and {{}} mark.

Adding CSS in easymeteor.css

Storing tasks in a collection
collection in meteor can be access from both server and the client.

Create the collection and client will connect to that server to get the tasks.
// simple-todos.js
Tasks = new Mongo.Collection("tasks");

if (Meteor.isClient) {
// This code only runs on the client
Template.body.helpers({
tasks: function () {
return Tasks.find({});
}
});
}

Inserting the tasks from the console
Connect to the database
> meteor mongo

Query
> db.tasks.find();
Insert
> db.tasks.insert({ text: "CREATE the JIRA ticket for Hybrid", createAt: new Date() });

Forms and Events
The HTML form will be easy
<!-- add a form below the h1 -->
<form class="new-task">
<input type="text" name="text" placeholder="Type to add new tasks" />
</form>

handle the event and store our data into mongo
Template.body.events({
"submit .new-task": function (event) {
// This function is called when the new task form is submitted

var text = event.target.text.value;

Tasks.insert({
text: text,
createdAt: new Date() // current time
});

// Clear form
event.target.text.value = "";

// Prevent default form submit
return false;
}
});
}

Update and Remove Operation
Add the operation label to the html
<template name="task">
<li class="{{#if checked}}checked{{/if}}">
<button class="delete">×</button>

<input type="checkbox" checked="{{checked}}" class="toggle-checked" />

<span class="text">{{text}}</span>
</li>
</template>

Event Operation on JS, update the checked property or delete the data
// In the client code, below everything else
Template.task.events({
"click .toggle-checked": function () {
// Set the checked property to the opposite of its current value
Tasks.update(this._id, {$set: {checked: ! this.checked}});
},
"click .delete": function () {
Tasks.remove(this._id);
}
});

3. Deploy the App
> meteor deploy sillycat.meteor.com

Then after that, I can visit this URL
http://sillycat.meteor.com/

References:
http://cordova.apache.org/docs/en/4.0.0/guide_overview_index.md.html#Overview
http://ngcordova.com/
http://ionicframework.com/

one example
https://github.com/windy/wblog_app
http://www.w3cplus.com/mobile/building-simple-app-using-ionic-advanced-html5-mobile-app-framework.html

phonegap
http://sillycat.iteye.com/blog/2008402

meteor
https://www.meteor.com/
https://github.com/awatson1978/meteor-cookbook/blob/master/table-of-contents.md
https://www.meteor.com/try
https://github.com/meteor/meteor

camera
http://www.sitepoint.com/beginners-guide-mobile-development-meteor/
https://github.com/meteor/mobile-packages
https://github.com/meteor/mobile-packages/blob/master/packages/mdg:camera/README.md
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值