Цитата:
|
Poznakomlus, наркоман, хватит через переводчик разговаривать.
Кстати пасоны, какой самый короткий и красивый способ получить глобальный обьект? пока остановился на этом eval("this")но не надежно, (function(){return this}())куда надежнее |
Maxmaxmaximus6, опять ты, троллинг не защитан.
<sarcasm>Самый надежный способ, работает 100% (function(){ "use strict"; return this}()); "use strict" - это что бы быстрей работало, не обращай внимание, оптимизация такая.</sarcasm> |
много миллисекунд сэкономит?
cyber, кстати я переписываю ядро ui =) теперь не будет классов будут только прототипы) будет один обьект главный модуль и у него будут ресурсы. можно создавать модули наследники которые будут наследовать ресурсы. короче крутотень такая что словами не передать. и главное и труъ и логично и можно даже код в функцию не оборачивать. круть |
Гениально) ведь класс нужен когда мы будем несколько однотипных обектов создавать) но млять зачем нам тут это, я там парился с наследованием parent вон в конструкторпередавал, лол ПРОТОТИПЫ!!
ТО ЧТО НУЖНО! ![]() Цитата:
|
Стоп, ты реально воспринял серьезно про "use strict" ?
Ты мне реально настроение поднял :lol: :lol: :lol: при использование "use strict" по умолчанию у функций this === undefined. |
Цитата:
если сократить код всей моей либы то это: adddEventListener('DOMContentLoaded', function(){ ui.init() }) var ui = { /* */ } ui.directive('name', function(){ /**/ }) ui.directive('trololo', function(){ /**/ }) ui.service('$qqff', function(){ /**/ }) охуенно? я как бы вывернул все на изнанку и там все на столько охуительно что не потребовалось ни чо за собой убирать теперь даже в функцию все оборачивать не обязательно, а все ядро распихано по сервисам и директивам и прочему, при чем к этому доступ имеют и пользователи =) то есть нет больше "под капотом" и "над капотом", теперь ВСЁ над капотом) |
Maxmaxmaximus6, насчет переменных, если перменные только для внутреннего использование то в название добавляют $ и $$, или это только для событий? http://habrahabr.ru/post/201832/
|
Цитата:
void function () { 'use strict'; alert(this === 100500); } .call(100500); |
cyber, $$ это то что пользователю запрещено трогать
$ это то что пользователю можно и нужно трогать но в служебных целях для управления функциями ангуляра. почему они используют баксы а не _? чтобы пользователь мог _ использовать =) очевидно же. Цитата:
monolithed, круто круто я придумал сделать)? описать все как обьект. оцени как батька. |
monolithed, по умолчанию я имел ввиду без вызова call, apply, bind..)
|
Я тут grunt ковыряю, не могу понять про подключение модуля, путь к чему прописывать нужно?
grunt.loadNpmTasks('grunt-contrib-compress'); Везде путь прописан как выше, что не так? Устанавливал так Цитата:
Цитата:
|
ну вот мой рабочий грант.
module.exports = function(grunt) { grunt.initConfig({ pkg : grunt.file.readJSON('package.json'), concat: { options: { banner : '/* <%=pkg.name%> <%=pkg.version%> ' + 'by Maxmaxmaximus (build <%=grunt.template.today("yyyy.mm.dd")%>) */\n\n', separator: '\n\n\n' }, build : { src : ['src/intro.js', 'src/core/*', 'src/index.js', 'src/ui/*/*.js', 'src/outro.js'], dest: 'build/<%= pkg.name %>.js' } }, uglify: { options: { banner: '/* <%=pkg.name%> min <%=pkg.version%> ' + 'by Maxmaxmaximus (build <%=grunt.template.today("yyyy.mm.dd")%>) */\n\n' }, build : { src : 'build/<%= pkg.name %>.js', dest: 'build/<%= pkg.name %>.min.js' } } }); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.registerTask('default', ['concat', 'uglify']); }; |
Кстати, оцените НОВЫЙ стайл ui :thanks:
var ui = window['ui'] = { name : 'ui', children : {}, filters : {}, services : {}, directives : {}, animations : {}, controllers: {}, init: function(element) { var $compile = this.service('$compile'); var $scope = this.service('$scope'); $compile(element)($scope); }, module: function(name) { }, directive: function(name, factory) { }, service: function(name, factory) { return this.resource('services', name, factory); }, filter: function(name, factory) { return this.resource('filters', name, factory); }, animation: function(name, factory) { return this.resource('animations', name, factory); }, controller: function(name, controller) { var $parseController = this.service('$parseController'); if (controller) { this.controllers[name] = $parseController(controller); return this; } var controller = this.controllers[name]; if (!controller) { controller = $parseController(window[name]); } return controller; }, invoke: function(func, context, locals) { var self = this; if (!locals) { locals = {} } if (isArray(func)) { var inject = func.slice(); func = inject.pop(); func['$inject'] = inject; } if (!func['$inject']) { var params = func.toString().match(/\(([\s\S]*?)\)/)[1].match(/[\w$]+/img) || []; func['$inject'] = params; } locals['$module'] = this; var services = func['$inject'].map(function(injectName) { return locals[injectName] || self.service(injectName); }); return func.apply(context, services); }, instantiate: function(func, locals) { var instance = Object.create(func.prototype); var returns = this.invoke(func, instance, locals); if (isObject(returns)) { instance = returns; } return instance; }, resource: function(type, name, factory) { if (factory) { var resource = { factory : factory, instance: null }; this[type][name] = resource; return this; } var resource = this[type][name]; if (!resource) return null; var instance = resource.instance; if (!instance) { var instance = this.invoke(resource.factory) || null; resource.instance = instance; } return instance; } }; |
НЕ НУ ВЫ ПОСМОТРИТЕ КАК ЭТО КРУТО А!! КОГДА ВСЕ РАСПИСЫВАЕШЬ ТАК ПРИЯТНО!111
![]() |
Цитата:
|
Цитата:
|
И что вот на счет этого скажете? то что я тут написал не
if(module) return module а именно вот так ![]() по моему так более логично и очевидно, да? типа если нет модуля, то быстренько создать, если есть то вернуть. |
Цитата:
Но ты большинство своих откровений называешь гениальными и ведешь себя как какой-то гипервозбужденный торчок на волне прихода. Нет, с точки зрения программиста, этого я не понимаю. :D Цитата:
|
как будто что-то плохое)
|
Цитата:
Путь нужно прописывать к node пакету-таска, т.е. как правило нужно написать, только имя таска и поиск будет искаться по node_modules. Создай package.json и опиши там нужные зависисимости, вроде: { "name": "myproject", "dependencies": { "grunt-cli": ">=0.1", "grunt": ">=0.4", "grunt-csso": ">=0.5" } } после в этой папке, где создал файл, сделай npm i, затем создай Gruntfile.js и всё PS: http://habrahabr.ru/post/133363/ |
Вот короче готовое ядро, оцените код? Лучше стало?
var ui = window['ui'] = { name : 'ui', children : {}, filters : {}, services : {}, directives : {}, animations : {}, controllers: {}, init: function(element) { var $compile = this.service('$compile'); var $scope = this.service('$scope'); $compile(element)($scope); }, module: function(name) { var children = this.children; var module = children[name]; if (!module) { module = Object.create(this); module.name = name; module.children = {}; module.filters = Object.create(this.filters); module.services = Object.create(this.services); module.animations = Object.create(this.animations); module.directives = Object.create(this.directives); module.controllers = Object.create(this.controllers); children[name] = module; } return module; }, directive: function(name, factory) { if (factory) { return this.resource('directives', name, factory); } var directives = this['directives']; var resource = directives[name]; if (!resource) { return null; } var instance = resource.instance; if (!instance) { factory = resource.factory; instance = this.invoke(factory); if (isFunction(instance)) { instance = { link: instance }; } if (!instance.name) { instance.name = name; } if (!instance.priority) { instance.priority = 0; } if (!instance.restrict) { instance.restrict = 'A'; } resource.instance = instance; } return instance; }, service: function(name, factory) { return this.resource('services', name, factory); }, filter: function(name, factory) { return this.resource('filters', name, factory); }, animation: function(name, factory) { return this.resource('animations', name, factory); }, controller: function(name, controller) { var controllers = this.controllers; var $parseController = this.service('$parseController'); if (controller) { controllers[name] = $parseController(controller); return this; } controller = controllers[name]; if (!controller) { controller = $parseController(window[name]); } return controller; }, invoke: function(func, context, locals) { if (!locals) { locals = {} } if (isArray(func)) { var inject = func.slice(); func = inject.pop(); func['$inject'] = inject; } if (!func['$inject']) { var params = func.toString().match(/\(([\s\S]*?)\)/)[1].match(/[\w$]+/img); func['$inject'] = params || []; } locals['$module'] = this; var services = func['$inject'].map(function(injectName) { return locals[injectName] || this.service(injectName); }.bind(this)); return func.apply(context, services); }, instantiate: function(func, locals) { var instance = Object.create(func.prototype); var returns = this.invoke(func, instance, locals); if (isObject(returns)) { instance = returns; } return instance; }, resource: function(type, name, factory) { if (factory) { var resource = { factory : factory, instance: null }; this[type][name] = resource; return this; } resource = this[type][name]; if (!resource) { return null; } var instance = resource.instance; if (!instance) { factory = resource.factory; instance = this.invoke(factory); resource.instance = instance; } return instance; } }; |
<iframe width="420" height="315" src="//www.youtube.com/embed/l9wOxpiwu7Q" frameborder="0" allowfullscreen></iframe> |
nerv_, ну чо с кодом то? норм стайл?
|
Maxmaxmaximus6,
это ни кому не интересно |
kobezzza, спс работает.
Цитата:
|
Цитата:
Цитата:
|
kobezzza, еще вопрос,
//Эти задания будут выполнятся сразу же когда вы в консоли напечатание grunt, и нажмете Enter grunt.registerTask('default', ['jshint', 'concat']); т.е пока я не запущу грант из консоли нечего собиреться (просто в консоли винды не видит grunt)? Я просто не могу понять, я не правильно настройки передал или просто проект не собирается. |
Цитата:
npm i -g grunt ЗЫ: кстати, я в винде в качестве консольки юзаю git bash (http://git-scm.com/) |
Цитата:
Цитата:
Цитата:
|
kobezzza, а для него есть оболочка как в убунте?
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
*** Стоп, а как ты до этого запускал? батник что ли какой то хотел завести? |
Цитата:
|
Часовой пояс GMT +3, время: 21:10. |