LINUX.ORG.RU

Такая же хрень в DOMе для elem.style.* (margin-top => marginTop и пр..). Вполне ожидаемо.

deep-purple ★★★★★
()
Ответ на: комментарий от anonymous

«naming conventions»

Тьфу ты, я термина такого не знал... Спасибо!!!

Shadow ★★★★★
() автор топика

директива в HTML вида «имя-дерективы» в js коде контроллера считается как имяДирективы? А где это большими буквами написано?

Ты не поверишь :)

https://docs.angularjs.org/guide/directive

И практически сразу по тексту:

Angular normalizes an element's tag and attribute name to determine which elements match which directives. We typically refer to directives by their case-sensitive camelCase normalized name (e.g. ngModel). However, since HTML is case-insensitive, we refer to directives in the DOM by lower-case forms, typically using dash-delimited attributes on DOM elements (e.g. ng-model).

The normalization process is as follows:

1. Strip x- and data- from the front of the element/attributes.

2. Convert the :, -, or _-delimited name to camelCase.

static_lab ★★★★★
()
Ответ на: комментарий от static_lab

Это, вообще-то, не тривиальное решение, описано так буднично... Что я, прочитав по диагонали, не вкурил. Когда стал делать директиву, удивился и решил тут переспросить. С другой стороны, на JavaScript всё не тривиальное становится тривиальным...

Shadow ★★★★★
() автор топика
Ответ на: комментарий от Shadow

Что я, прочитав по диагонали, не вкурил

у Angular в принципе сложная документация, она становится очевидной только с опытом. Поэтому изучить Angular самостоятельно без гуру по одной лишь документации или примерам довольно сложно. Знаю на собственном опыте.

static_lab ★★★★★
()
Ответ на: комментарий от static_lab

без гуру

Подавился чаем. На всякий случай, Вам по электронной почте, например, иногда подобные вопросы можно задавать?

Или в этой теме?

У меня тут такой вопрос. Я пока на 1.2 сижу, я правильно понял, что в новой версии изменения не сильно большие - немного по-другому определяются модули, немного больше разбито на разные файлы и т.п.?

Shadow ★★★★★
() автор топика
Ответ на: комментарий от Shadow

На всякий случай, Вам по электронной почте, например, иногда подобные вопросы можно задавать?

Уж лучше тогда в скайп (как ник, только дефис)

Я пока на 1.2 сижу, я правильно понял, что в новой версии изменения не сильно большие - немного по-другому определяются модули, немного больше разбито на разные файлы и т.п.?

В 1.3 одно из самых важных нововведений — однократное связывание, это очень сильно может сократить число вотчеров и, соответственно, облегчает страницу.

По поводу модулей не совсем понял, что имеется в виду. Вроде бы ничего принципиально не изменилось.

Разбитие на файлы вообще ангуляру параллельно, хоть в один файл пиши (или минифицируй), хоть в 100500.

static_lab ★★★★★
()
Ответ на: комментарий от static_lab

Спасибо, как только столкнусь с чем-то мистическим, постучусь. Из нововведений - я имел ввиду, например, что в примерах на более старые версии я находил определение функции (уже написанной) как контроллера в .controller нужно добавлять $scope, $http, а в той версии, что я использую, это вызывало ошибку. Разбитие на файлы - это когда нужно добавлять angular.js и angular-route.js вместо одного angular.js - я так понял, с каждой версией число файлов увеличивается. Я вообще начал ковырять ангуляр только из-за того, что к нему есть Mobile Angular UI и UI Bootstrap - они очень лёгкие и быстрые.

Shadow ★★★★★
() автор топика
Ответ на: комментарий от Shadow

в примерах на более старые версии я находил определение функции (уже написанной) как контроллера в .controller нужно добавлять $scope, $http, а в той версии, что я использую, это вызывало ошибку

всё работает одинаково, просто есть три способа определения инжектируемых объектов:

1) проверяется наличие поля $inject у функции:

MyController.$inject = ['$scope', '$http'];
function MyController() { ... }
module.controller('MyController', MyController);

2) передача регистрирующей функции массива параметров + функции:

module.controller('MyController', [
    '$scope', '$http',
    function($scope, $http) { ... }
]);

3) если явно инжектируемые объекты не указаны, ангуляр попытается определить их сам, проверяя параметры в определении функции:

module.controller('MyController', function($scope, $http) { ... });

В первых двух случаях идентификаторы формальных параметров в описании функции ангуляром игнорируются, что позволяет минификацию. В третьем случае после минификации заголовок превратится, например, в function(a, b) { ... } и ангуляр уже ничего не сможет сделать, выдав ошибку инжекции.

static_lab ★★★★★
()
Ответ на: комментарий от Shadow

Разбитие на файлы - это когда нужно добавлять angular.js и angular-route.js вместо одного angular.js - я так понял, с каждой версией число файлов увеличивается.

Ну это логично, количество объектов растёт и специфические вещи выносятся в отдельные модули. Например, многие вместо angular-route предпочитают ui-router, поэтому первый им и не придётся подключать.

static_lab ★★★★★
()
Ответ на: комментарий от Shadow

Я про первый случай. Я пытался сделать как http://stackoverflow.com/a/15618685 - там в конце почему-то есть [$scope, $http], и это вызывало ошибку. Я их потёр, и всё стало отлично.

Это второй случай, вообще-то. И что за ошибку он тебе выдал? Может быть ты указал их как тут в сообщении — без кавычек, то есть передал не строки, а, фактически, undefined, либо забыл указать параметры в самой функции-конструкторе контроллера.

static_lab ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.