|
Результаты опроса: Как вам UI
|
|
Похоже на унылое говно
|
|
20 |
68.97% |
Однозначно буду использовать
|
|
7 |
24.14% |
Пока не разобрался что это
|
|
2 |
6.90% |
|
21.11.2013, 21:15
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
Цитата:
|
ААААААААААААААААААААААААА ААААААААААА!!!!!!111111111111
РУССКАЯ ДОКУМЕНТАЦИЯ!1111111111111111111111111 11 А я английскую читал через переводчик 2 дня О_О спасибо!!!
|
ахах не один такой))
правда я нашел русскую еще утром
__________________
Научу себя плохому
|
|
27.11.2013, 01:38
|
Профессор
|
|
Регистрация: 18.11.2013
Сообщений: 275
|
|
Чтоб приоритетнее ng-controller или ng-repeat ?
|
|
01.12.2013, 10:31
|
Профессор
|
|
Регистрация: 18.11.2013
Сообщений: 275
|
|
Способ организации модулей
Как вы организуете модули в своих проектах? В ангуляре я увидел это, вроде идея то простая, но оч удобная. Всегда теперь буду использовать эту штуку:
module = new function() {
var modules = {};
function getParamNames(func) {
return func.toString().match(/\((.*?)\)/)[1].match(/[\w$]+/g) || [];
}
function invoke(factory) {
var injections = getParamNames(factory).map(function(name) {
return module(name);
});
return factory.apply(null, injections);
}
return function(name, factory) {
if (!factory) {
var module = modules[name];
if (!module) throw 'модуль ' + name + ' не найден';
return module.instance || (module.instance = invoke(module.factory));
}
modules[name] = {
factory : factory,
instance: null
};
return this;
}
};
module('one', function() {
function say() { console.log('im one!') }
return {say: say}; //импорт
});
module('two', function() {
function say() { console.log('im two!') }
return {say: say}; //импорт
});
module('three', function(two, one) {
function init() {
one.say();
two.say();
console.log('im three, and i init!')
}
return {init: init}; //импорт
});
module('three').init(); //запускаем шайтанмашину =)
Кто не понял, модули зависимости мы запрашиваем по именам аргументов.
Последний раз редактировалось Maxmaxmaximus3, 01.12.2013 в 11:36.
|
|
01.12.2013, 12:58
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Не использую специальный каркас для модулей, разве что для служебных глобальных переменных юзаю анонимную вызываемую функцию. А так простые неймспейсы и ничего более, не использую AMD (т.к. это выглядит мило только при малом количество кода, один раз обжёгся), мне ближе CommonJS подход (его и юзаю), да и в скорем времени можно ожидать модули, как часть нового стандарта, так что можно юзать уже с транслятором.
Последний раз редактировалось kobezzza, 01.12.2013 в 13:05.
|
|
01.12.2013, 13:16
|
Профессор
|
|
Регистрация: 18.11.2013
Сообщений: 275
|
|
Кстати да, много нового нативного добавляют, радует что этими вещами занимаются люди которые живут реальностью = ) а не в абстрактной мирке.
|
|
03.12.2013, 05:18
|
Профессор
|
|
Регистрация: 18.11.2013
Сообщений: 275
|
|
<script src="http://mychamber.ru/build/ui.js"></script>
<div controller="FRP">
<button click="a++">add</button>
{a} + {b} = {c}
</div>
<script>
function FRP() {
a = 2
b = 3
c = (a + b)
}
</script>
круто?
Последний раз редактировалось Maxmaxmaximus3, 03.12.2013 в 05:22.
|
|
04.12.2013, 21:01
|
Профессор
|
|
Регистрация: 18.11.2013
Сообщений: 275
|
|
Пасоны, придумал очередную нанотехнологию, сервисы могут возвращать значение АСИНХРОННО!!
<script src="http://mychamber.ru/build/ui.js"></script>
<div controller="Ctrl">
{prop}
</div>
<script>
function Ctrl() {
prop = $test() //немного уличной магии ^__^
}
ui.global.service('$test', function() {
return function test() {
//возвращаем значение ассинхронно
setTimeout(function() { test.$async('Тадааа ^__^') }, 2000)
return 'loading...';
}
});
</script>
Единственное что, значение ассинхронно можно пихнуть только если идет приравнивание, а не декларация обьекта или вызов функции =( но я работаю над этим. Но по сути, если мы используем FRP подход, то это неебический сахар, ведь там только приравнивание и идет.
Ну типа того:
<script src="http://mychamber.ru/build/ui.js"></script>
<div controller="Ctrl">
Имя: {form.name}<br>
Пароль: {form.pass}<br>
Отложенное значение: {form.test}
</div>
<script>
function Ctrl($test) {
name = 'Maxmaxmaximus'
pass = '****'
test = $test()
form = ({
name: name,
pass: pass,
test: test
})
}
ui.global.service('$test', function() {
return function test() {
//возвращаем значение ассинхронно
setTimeout(function() { test['$async']('Тадааа ^__^') }, 2000)
return 'loading...';
}
});
</script>
Последний раз редактировалось Maxmaxmaximus3, 04.12.2013 в 21:24.
|
|
04.12.2013, 23:12
|
Профессор
|
|
Регистрация: 18.11.2013
Сообщений: 275
|
|
Еще одна фитча, если мы вызываем контроллер так, то "глобальные переменные" попадают в текущий scope,
Если же мы вызываем контроллер как инстанс, то все эти свойства попадают в него.
То есть так и рекомендуется описывать контроллеры, без всяких this'ов и $scope'ов.
1) Это во первых удобно, так как не нужно писать всякие this и $scope.
2) Во вторых красиво, так как идешки подсвечивают "глобальные" переменные если настроить.
3) В третьих, человек вызывающий контроллер будет сам решать куда ему засунуть свойства контроллера, в инстанс или развернуть же в текущий скоуп =)
4) Так же, к слову, у нас внутри контроллеров есть прямой доступ к внешней области видимости, но если кто хочет может обратится явно через сервис: $scope.dsffsd
Это вам не ангуляр детки.
Последний раз редактировалось Maxmaxmaximus3, 04.12.2013 в 23:16.
|
|
04.12.2013, 23:49
|
Профессор
|
|
Регистрация: 18.11.2013
Сообщений: 275
|
|
Короче если так controller="ToDo", то зисом будет скоуп, а если так controller="ToDo as todo" то зисом будет новая сущность, но скоуп все ровно будет виден внутри контроллера.
просто this.qq можно не писать так как код предварительно парсится и это все дописывается автоматически если нет локальной переменной с таким именем конечно же. все гениальное просто.
Последний раз редактировалось Maxmaxmaximus3, 04.12.2013 в 23:55.
|
|
29.12.2013, 04:17
|
Профессор
|
|
Регистрация: 19.12.2013
Сообщений: 180
|
|
Релиз ui 1.0.0
https://github.com/Maxmaxmaximus/ui
Половину функционала выпилил в dev ветку, которую скоро выгружу)
оцените ридми=)
Последний раз редактировалось Maxmaxmaximus6, 30.12.2013 в 00:21.
|
|
|
|