![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnauEXcykWc1Qje0oHbpJ3ZuZWNxMzM5AzLchDMvwlMxQTMwIzLc1WdixWYvwFduVWboNWY0RXYvwVY0FGZvwVZt5CevJWcu42Y4VnbpxWLuR2Lc9CX6MHc0RHaiojIsJye.jpg)
<a target="_blank"></a>
接下来你要安装一个 cordova 和 ionic的命令行工具,操作如下:
npm install -g cordova ionic
安装完成之后,你可以尝试开始创建一个工程:
进入项目目录,添加ionic平台,创建应用,在虚拟机中运行,成为高富帅……
cd myionicapp
ionic platform add android
ionic build android
ionic emulate android
下面就是样例应用的效果:
我们已经有一个不错的开始了,现在我们来创建一个todo列表的应用,我们从空白模板开始:
ionic start mytodolist blank
如果你进入到项目目录,你会看到angularjs文件,这是我们添加相关代码的地方。
<ion-list>
<ion-item>scuba diving</ion-item>
<ion-item>climb mount everest</ion-item>
</ion-list>
之后我们看一看添加ion-list之后我们的html文件是什么样的:
<!doctype html>
<html>
<head>
<metacharset="utf-8">
<metaname="viewport"content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title></title>
<linkhref="lib/ionic/css/ionic.css"rel="stylesheet">
<linkhref="css/style.css"rel="stylesheet">
<!-- if using sass (run gulp sass first), then uncomment below and remove the css includes above
<link href="css/ionic.app.css" rel="stylesheet">
-->
<!-- ionic/angularjs js -->
<scriptsrc="lib/ionic/js/ionic.bundle.js"></script>
<!-- cordova script (this will be a 404 during development) -->
<scriptsrc="cordova.js"></script>
<!-- your app's js -->
<scriptsrc="js/app.js"></script>
</head>
<bodyng-app="starter">
<ion-pane>
<ion-header-barclass="bar-stable">
<h1class="title">my todo list</h1>
</ion-header-bar>
<ion-content>
</ion-content>
</ion-pane>
</body>
</html>
然后我们可以在 www/js/中创建一个controllers.js文件,来定义一个新的cntroller,我们暂且叫它todolistctrl。这是controllers.js文件的内容:
angular.module('starter.controllers',[])
.controller('todolistctrl',function($scope){
});
在上面的代码中,我们定义了一个叫starter的module和一个叫作calledtodolistctrl的controler。
然后我们就要把这个module加到我们的应用中了。打开www/js/app.js ,然后把module添加进去:
angular.module('starter',['ionic','starter.controllers'])
.run(function($ionicplatform){
$ionicplatform.ready(function(){
if(window.statusbar){
statusbar.styledefault();
}
})
我们继续,定义一个$scope来携带todo list的条目,todolistctrl中声明一个新的$scope变量,如下:
$scope.todolistitems =[{
task:'scuba diving',
status:'not done'
},{
task:'climb everest',
}]
把controllers.js添加到index.html中:
<ion-listng-controller="todolistctrl">
<ion-itemng-repeat="item in todolistitems">
{{item.task}}
</ion-item>
我们现在需要在index.html中添加一个button来触发事件:
<scriptid="modal.html"type="text/ng-template">
<div class="modal">
<div class="bar bar-header bar-calm">
<button class="button" ng-click="closemodal()">back</button>
<h1 class="title">add item</h1>
</div>
<br></br>
<form ng-submit="additem(data)">
<div class="list">
<div class="list list-inset">
<label class="item item-input">
<input type="text" placeholder="todo item" ng-model="data.newitem">
</label>
<button class="button button-block button-positive" type="submit">
additem
</button>
</form>
</script>
现在确认一下,在上面的操作中,我们在modal中添加了一个header,一个input box和一个button。
我们同样有需要一个回退的button在header中,它用来触发 closemodal() 功能。
现在我们开始绑定 ionic modal 到我们的 controller中,我们通过如下的方法把 $ionicmodal 注入到controller中:
.controller('todolistctrl',function($scope, $ionicmodal){
// array list which will contain the items added
$scope.todolistitems =[];
//init the modal
$ionicmodal.fromtemplateurl('modal.html',{
scope: $scope,
animation:'slide-in-up'
}).then(function(modal){
$scope.modal = modal;
// function to open the modal
$scope.openmodal =function(){
$scope.modal.show();
};
// function to close the modal
$scope.closemodal =function(){
$scope.modal.hide();
//cleanup the modal when we're done with it!
$scope.$on('$destroy',function(){
$scope.modal.remove();
//function to add items to the existing list
$scope.additem=function(data){
$scope.todolistitems.push({
task: data.newitem,
data.newitem ='';
$scope.closemodal();
我们在上面的代码中使用了 .fromtemlateurl 来加载html的内容,然后在初始化的时候通过两个选项定义了$scope和animation的类型。
当然我们也定义了打开、关闭moda和添加条目到数组的方法。
好了,万事俱备,虚拟机走起,看起来还不错吧。
原文发布时间:2014-12-08
本文来自云栖合作伙伴“linux中国”