26.05.2013, 22:41
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
Игра в демки, пиар ангуляра и обучение.
Идея ! Предлагаю попубликовать мелкие но интересные приложения написанные на этом фреймворке вами лично.
Профит= пропиарим фреймворк + обменяемся опытом.
Присоединяйтесь
Начнём с простого.
Калькулятор калорий.
<!doctype html>
<html ng-app>
<head>
<script src="http://code.angularjs.org/1.1.5/angular.min.js"></script>
<script language="javascript" type="text/javascript">
function СompCnt($scope) {
//todo массив из значений
$scope.mass=50;
$scope.stature=170;
$scope.age=20;
$scope.calories=0;
$scope.computing=function(){
$scope.calories=10 * $scope.mass + 6.25*$scope.stature-5*$scope.age+5;
}
//запустим чтобы калории посчитались из значений по умолчанию
$scope.computing();
}
</script>
</head>
<body>
<H3>Калькулятор потребности в калориях</h3>
<div ng-controller="СompCnt">
Вес:<input type="text" ng-model="mass" ng-change="computing()">
Рост:<input type="text" ng-model="stature" ng-change="computing()">
Возраст:<input type="text" ng-model="age" ng-change="computing()">
<hr/>
Потребность мужчины в калориях: <b>{{calories}}</b> калорий в день
</div>
</body>
</html>
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 27.05.2013 в 01:17.
|
|
26.05.2013, 22:44
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
микроскопическая todo
<!doctype html>
<html ng-app>
<head>
<script src="http://code.angularjs.org/1.1.5/angular.min.js"></script>
<script language="javascript" type="text/javascript">
function TodoCntl($scope) {
//todo массив из значений
$scope.todo = [];
//Метод добавляем в массив значение и сбрасывает
$scope.add=function(name){
$scope.todo.push({text:$scope.text});
$scope.text="";
}
//Метод remove удаляет все задачи
$scope.remove=function(name){
$scope.todo=[];
}
}
</script>
</head>
<body>
<div ng-controller="TodoCntl">
<form ng-submit="add()">
<input type="text" ng-model="text">
<input class="btn-primary" type="submit" value="add">
</form>
<hr/>
<ul>
<li ng-repeat="item in todo | filter:query" >
{{item.text}}
</li>
</ul>
<button ng-click="remove()">Очистить</button>
</div>
</body>
</html>
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
|
|
26.05.2013, 22:46
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
Тренажёр для запоминания английских слов.
<!doctype html>
<html ng-app>
<head>
<script src="http://code.angularjs.org/1.1.5/angular.min.js"></script>
<script language="javascript" type="text/javascript">
function LangCntl($scope) {
// Данные для теста, вопрос, варианты и правильный ответ
var data=[
{
word:"for",
translate:["для","после","цикл","этот"],
realTranslate:"для"
},
{
word:"mix",
translate:["имельчить","смешать","взболтать","гоголь моголь"],
realTranslate:"смешать"
},
{
word:"angular",
translate:["яркий","пушистый","умный","гранёный"],
realTranslate:"гранёный"
}
];
// выставим первый вопрос
$scope.quest=data[0];
//счётчик
$scope.count=0;
//функция проверяющая ответы пользователя
$scope.respond=function(variant){
// проверим ответ
if(variant==$scope.quest.realTranslate) alert('Верно!');
else alert('увы, но правильный ответ '+$scope.quest.realTranslate);
//зададим следующий вопрос, но только если вопросы некончились
if($scope.count<data.length-1){
$scope.count++;
$scope.quest=data[$scope.count];
}
else{
alert("тестирование окончено");
}
}
}
</script>
</head>
<body>
<div ng-controller="LangCntl">
вопрос {{count+1}} ( кликайте по правильному ответу)<br/>
Как переводится <b>{{quest.word}}</b>
<hr/>
<ul>
<li ng-repeat="item in quest.translate | filter:query" ng-click="respond(item)">
{{item}}
</li>
</ul>
</div>
</body>
</html>
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 27.05.2013 в 01:19.
|
|
26.05.2013, 23:51
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
интересная штука этот ангуляр. Это я говорю не после того, как увидел твои примеры, а после прочтения некоторой части доки http://angular.ru/guide/overview
еще статья http://habrahabr.ru/post/172975/
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Последний раз редактировалось nerv_, 26.05.2013 в 23:55.
|
|
27.05.2013, 00:09
|
Профессор
|
|
Регистрация: 04.10.2010
Сообщений: 571
|
|
Отличная идея! Пока возьму пару примеров оттуда, а потом отсюда что-нибудь туда :-)
Редактируемый древовидный список
<!doctype html>
<html ng-app="myApp">
<head>
<script src="http://code.angularjs.org/1.1.5/angular.min.js"></script>
<script>
angular.module("myApp", []);
function TreeController($scope) {
$scope.delete = function(data) {
data.nodes = [];
};
$scope.add = function(data) {
var post = data.nodes.length + 1;
var newName = data.name + '-' + post;
data.nodes.push({name: newName,nodes: []});
};
$scope.tree = [
{name: 'Узел', nodes: [
{name: 'Морской', nodes: []},
{name: 'Устричный', nodes: []}
]}
];
};
</script>
</head>
<body>
<script type="text/ng-template" id="item.html" ng-init="data.edit=false" >
<span ng-show="data.edit">
<input type="text" value="{{data.name}}" ng-model="data.name"/>
<button ng-click="data.edit=false">сохр.</button>
</span>
<span ng-hide="data.edit">
{{data.name}}
<button ng-click="data.edit=true">ред.</button>
</span>
<button ng-click="add(data)">Добавить узел</button>
<button ng-click="delete(data)" ng-show="data.nodes.length > 0">Удалить узел</button>
<ul>
<li ng-repeat="data in data.nodes" ng-include="'item.html'" class="node"></li>
</ul>
</script>
<ul ng-controller="TreeController">
<li ng-repeat="data in tree" ng-include="'item.html'" class="node"></li>
</ul>
</body>
</html>
Последний раз редактировалось Shitbox2, 27.05.2013 в 00:46.
|
|
27.05.2013, 00:46
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
Цитата:
|
пару примеров оттуда,
|
Думаю нет смысла репостить примеры с оф сайта. Свои горазд ценнее
График и таблица связанные общими данными,
демонстрирует наследование scope контролами tableController и chartController от mainController
<!doctype html>
<html ng-app>
<head>
<style>
.bar{
width:50px;
background-color:#0F0;
margin-right:5px;
float:left;
}
</style>
<script src="http://code.angularjs.org/1.1.5/angular.min.js"></script>
<script language="javascript" type="text/javascript">
function mainController($scope) {
// здесь будем хранить данные,
// благодаря тому что они обьявлены здесь ими могут пользоваться оба контролёра унаследовавших scope
$scope.items=[
{label:"Африка",val:25},
{label:"Европа",val:20}
];
}
function tableController($scope) {
//добавляет строку в таблицу
$scope.add=function(){
$scope.items.push({val:0});
};
// метод не позволяет выставить больше 100%
$scope.verife=function(item){
if (item.val>100) item.val=100;
if (item.val<0) item.val=0;
};
}
function chartController2($scope) {
}
</script>
</head>
<body ng-controller="mainController">
<div ng-controller="chartController2">
<div style="height:310px;background-color:#000;padding:5px;">
<div class="bar" ng-repeat="item in items" style="height:{{item.val*3}}px; margin-top:{{300-item.val*3}}px;">
{{item.val}}%
</div>
</div>
</div>
<div ng-controller="tableController">
<table>
<tr ng-repeat="item in items">
<td>
<input ng-model="item.label"/></td> <td><input ng-model="item.val" ng-change="verife(item)"/>%
</td>
</tr>
</table>
<button ng-click="add()">Добавить запись </button>
</div>
</body>
</html>
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 27.05.2013 в 02:11.
|
|
27.05.2013, 00:48
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
27.05.2013, 01:00
|
Профессор
|
|
Регистрация: 04.10.2010
Сообщений: 571
|
|
Думаю, что сделал бы так же :-)
|
|
27.05.2013, 01:01
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
|
|
27.05.2013, 01:08
|
Профессор
|
|
Регистрация: 04.10.2010
Сообщений: 571
|
|
Ага. Правда, по тестам мне сложно сказать что там лучше, но учитывая, что этих тестов 15 ревизий и последняя была два дня назад, разработчики знают что делают :-)
|
|
|
|