2013-10-04 3 views
0

Я играл с AngularFire, и я понимаю документацию для коллекций. Но я чувствую, что я полностью пропускаю вещи, когда дело доходит до загрузки определенных элементов внутри коллекции, чем угодно, кроме позиции в массиве.Объекты AngularFire

Все примеры в Firebase данных имеют довольно имена для API, как пользователь/имя/первый

Но когда я использую angularFireCollection, чтобы сохранить коллекцию я получаю свой объект внутри уникальный идентификатор $. (не так красиво)

Это ожидаемое поведение? И если да, как бы я получил() элемент на основе значения вместо этого?

ex. Я создал ключ, называемый slug. В коллекции есть «моя тема». И я хочу загрузить его по $ routeParams.

.when('/themes/:slug/', { 
    templateUrl: 'views/theme.html', 
    controller: 'ThemesCtrl' 
    }) 

Как бы загрузить объект в темы/My-тему, а не тем/-J50neNBViK9l7P4QAYc

Спасибо заранее ...

+0

Я отказался от AngularFire за использование javascript API Firebase, он отлично работал. Используя set() вместо push(). Следует отметить, что его все в порядке, если нет возможности дублировать идентификаторы, хотя ... – Adam

ответ

1

angularFireCollection автоматически создает список элементов с автоматически сгенерированной инкрементные идентификаторы (генерируемые методом push() Firebase). Если вы хотите создать список элементов с настраиваемыми именами, угловое устройство может быть лучшим сервисом для использования (он использует набор вместо push). Например:

function ThemesCtrl($scope, angularFire) { 
    $scope.themes = {}; 
    angularFire(new Firebase(URL), $scope, 'themes'); 
    $scope.addTheme = function() { 
    $scope.themes["my-theme"] = $scope.currentTheme; 
    } 
} 
Смежные вопросы