Pull to refresh

Comments 35

Referencing private fields in Angular expressions is disallowed! на _id из MongoDB. Неудобно.
А можно поподробнее?
В чем особенность приватных полей?
Их нельзя использовать в ангуляровских выражениях. Мотивация разработчиков описана в коммите по ссылке выше.
Действительно странное решение. Были же переменные, которые начинались с $ и $$, которые по сути и являлись приватными. Не совсем понимаю, зачем было добавлено новое поведение для переменных с _.
JS мое хобби. Обновляю свой мини проект в качестве db mongo, столкнулся с данной проблемой. Пока нашел одно решение если не трогать серверную часть. Подскажите на сколько замедлит работу приложения, такое решение:

$scope.getId = function(i){
  return i._id
}


<a href='#/user/{{getId(item)}}'>{{item.email}}</a>


Заранее спасибо. Рад буду увидеть варианты от профи в angularjs.
Думаю, разницы не заметишь, хотя если функция будет тяжелой, а ссылки будут размножены ng-repeat до тысячи штук, то может притормаживать. Правильнее будет настроить interseptors или transformResponse/Request в $http или $resource и заменить айдишник на нормальный
Как вариант, геттеры-сеттеры (IE9+):

Object.defineProperty(mongoItem, "id", {
    get: function() { return this._id },
    set: function(id) { this._id = id }
});

Хотя сеттер в случае с mongo вряд ли нужен.
спасибо. Может быть кто-нибудь знает, есть-ли оффлайн курсы с преподавателем по ангулар? С удовольствием бы поучился.
Спрашивать про оффлайн курсы без указания города по меньшей мере странно. Или вы из ДС?
А вообще зачем там курсы? Есть же шикарный egghead.io/
Да, действительно, город в принципе любой западнее Сибири и на территории России. Офлайн для того, чтобы задать вопросы преподавателю, потратить на изучение немного времени. За ссылку спасибо.
Пока проще в Яндекс устроиться и подучиться)
UFO just landed and posted this here
Еще одна очень нужная директива теперь добавилась (ранее была в angular-ui): ng-if:
<div class="alert alert-danger" ng-if="errors">...</div>

В отличии от ng-show/ng-hide, которые просто манипулировали CSS свойствами, сия же директива честно убирает элемент из DOM :)
Она давно, еще в 1.1.5, добавлена.
Эта версия не была стабильной.
Также в этой версии доступен модуль ngTouch, который позволяет работать с сенсорными экранами, например с мобильными телефонами.
По мне так очень полезная фича.
С версии 1.2 появился ng-repeat-start и ng-repeat-end. То же самое, что ng-repeat, но размножает сразу несколько последовательных тегов. Удобно для группировки списка использовать. Например, есть сгруппированный список, где первому элементу в группе задан заголовок группы:

$scope.items = [
  {name: 'Ауди', title: 'автомобили'},
  {name: 'Мерседес', title: null},
  {name: 'Ямаха', title: 'мотоциклы'},
]

Размечаем его так:

<li ng-repeat-start="item in items" ng-if="item.title">-- {{item.title}} --</li>
<li ng-repeat-end>{{item.name}}</li>

На выходе получаем такой:

-- автомобили --
Ауди
Мерседес
-- мотоциклы --
Ямаха
Вы совсем уже шутнулись на своём ангуларе?!
Это что вообще за структура данных?

$scope.items = [
  {name: 'Ауди', title: 'автомобили'},
  {name: 'Мерседес', title: null},
  {name: 'Ямаха', title: 'мотоциклы'},
]


Что-то подобное в голову уже не приходит?

$scope.items = [
  {
     title: 'автомобили',
     children: ['Ауди', 'Мерседес']
  },
  {
     title: 'мотоциклы',
     children: ['Ямаха']
  }
];
Ага, а список сотрудников, к примеру, делить подобным образом на мальчиков и девочек, на отделы, на должности, а потом на каждую категорию свой ng-repeat. Не сложновато-ли? А так можно вставить разделитель групп не добавляя элементов в модель
Что, в твоём случае, произойдёт, если отсортировать массив по имени наоборот?

Прежде, чем хвататься за «популярное», стоит подучить азы ООП и MVC.
View и Model — это две разные штуки. Модель несёт характеристики объектов, а как это показывается пользователю, это уже дело вью.
Да модель-то здесь не затрагивается. Исключительно для функции фильтрации сделано, для отображения.

Как бы вы тогда сделали фильтрацию с разделением на группы?
Ну это ж вырожденный пример. Если делать mvc, то удобно в children иметь ссылки, а в скоуп биндить прямо моделью — типа Model.bindToScope($scope, 'Cars') в контроллере.
Ок, но я про то, как предлагалось вставлять разделители групп.
Ну мне кажется, что это из пальца высосанный пример, чтобы на простом примере продемонстрировать ng-repeat-start/end. Вряд ли кто-то в здравом уме будет делать такую структуру данных.
UFO just landed and posted this here
У меня одно из приложений сломалось из-за этого.

Короче, теперь нельзя иметь для одной ноды одновременно и ng-switch-when и ng-include.
Sign up to leave a comment.

Articles