Javascript.RU

Результаты опроса: Как вам UI
Похоже на унылое говно 20 68.97%
Однозначно буду использовать 7 24.14%
Пока не разобрался что это 2 6.90%
Голосовавшие: 29. Этот опрос закрыт

Создать новую тему Ответ
 
Опции темы Искать в теме
  #361 (permalink)  
Старый 21.11.2013, 21:15
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Цитата:
ААААААААААААААААААААААААА ААААААААААА!!!!!!111111111111
РУССКАЯ ДОКУМЕНТАЦИЯ!1111111111111111111111111 11 А я английскую читал через переводчик 2 дня О_О спасибо!!!
ахах не один такой))
правда я нашел русскую еще утром
__________________
Научу себя плохому
Ответить с цитированием
  #362 (permalink)  
Старый 27.11.2013, 01:38
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Чтоб приоритетнее ng-controller или ng-repeat ?
Ответить с цитированием
  #363 (permalink)  
Старый 01.12.2013, 10:31
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 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.
Ответить с цитированием
  #364 (permalink)  
Старый 01.12.2013, 12:58
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Не использую специальный каркас для модулей, разве что для служебных глобальных переменных юзаю анонимную вызываемую функцию. А так простые неймспейсы и ничего более, не использую AMD (т.к. это выглядит мило только при малом количество кода, один раз обжёгся), мне ближе CommonJS подход (его и юзаю), да и в скорем времени можно ожидать модули, как часть нового стандарта, так что можно юзать уже с транслятором.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 01.12.2013 в 13:05.
Ответить с цитированием
  #365 (permalink)  
Старый 01.12.2013, 13:16
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Кстати да, много нового нативного добавляют, радует что этими вещами занимаются люди которые живут реальностью = ) а не в абстрактной мирке.
Ответить с цитированием
  #366 (permalink)  
Старый 03.12.2013, 05:18
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 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.
Ответить с цитированием
  #367 (permalink)  
Старый 04.12.2013, 21:01
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 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.
Ответить с цитированием
  #368 (permalink)  
Старый 04.12.2013, 23:12
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Еще одна фитча, если мы вызываем контроллер так, то "глобальные переменные" попадают в текущий scope,



Если же мы вызываем контроллер как инстанс, то все эти свойства попадают в него.



То есть так и рекомендуется описывать контроллеры, без всяких this'ов и $scope'ов.
1) Это во первых удобно, так как не нужно писать всякие this и $scope.
2) Во вторых красиво, так как идешки подсвечивают "глобальные" переменные если настроить.
3) В третьих, человек вызывающий контроллер будет сам решать куда ему засунуть свойства контроллера, в инстанс или развернуть же в текущий скоуп =)
4) Так же, к слову, у нас внутри контроллеров есть прямой доступ к внешней области видимости, но если кто хочет может обратится явно через сервис: $scope.dsffsd

Это вам не ангуляр детки.

Последний раз редактировалось Maxmaxmaximus3, 04.12.2013 в 23:16.
Ответить с цитированием
  #369 (permalink)  
Старый 04.12.2013, 23:49
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus3
 
Регистрация: 18.11.2013
Сообщений: 275

Короче если так controller="ToDo", то зисом будет скоуп, а если так controller="ToDo as todo" то зисом будет новая сущность, но скоуп все ровно будет виден внутри контроллера.

просто this.qq можно не писать так как код предварительно парсится и это все дописывается автоматически если нет локальной переменной с таким именем конечно же. все гениальное просто.

Последний раз редактировалось Maxmaxmaximus3, 04.12.2013 в 23:55.
Ответить с цитированием
  #370 (permalink)  
Старый 29.12.2013, 04:17
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus6
 
Регистрация: 19.12.2013
Сообщений: 180

Релиз ui 1.0.0
https://github.com/Maxmaxmaximus/ui

Половину функционала выпилил в dev ветку, которую скоро выгружу)

оцените ридми=)

Последний раз редактировалось Maxmaxmaximus6, 30.12.2013 в 00:21.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обсуждений тред cyber Оффтопик 2130 03.10.2018 08:10
React'а тред melky Оффтопик 246 13.11.2016 08:07
Webpack'а тред nerv_ Сборка проекта, утилиты 58 07.05.2016 13:46
Github Atom'а тред melky Оффтопик 16 01.04.2015 07:44