Использование моделей Backbone с AngularJS

Недавно я думал о различиях и сходствах между Backbone.js и AngularJS.

Что мне действительно нравится в Backbone, так это Backbone-Models и Backbone-Collections. Вам просто нужно установить urlRoot, и тогда связь с backend-сервером через Ajax в основном работает.

не должен»Можно ли использовать только приложения Backbone-Models и Collections в приложении AngularJS? Таким образом, у нас было бы лучшее из двух миров: двустороннее связывание данных с AngularJS и удобный доступ к серверной части (или другим опциям хранения) через Backbone-модели и коллекции.

Быстрый поиск в интернете не сделалНе включайте любой сайт, предлагающий такой сценарий использования. Все ресурсы либо говорят об использовании того или другого фреймворка.

Есть ли у кого-то опыт использования Backbone-моделей или коллекций с AngularJS. Wouldn»они хорошо дополняют друг друга? Мне чего-то не хватает?

 Ajay Beniwal03 июн. 2013 г., 13:57
Почему вы хотите использовать магистральные модели, у вас есть угловой ресурс в $, который можно очень легко интегрировать с моделями на стороне сервера напрямую с помощью REST
 chfw06 окт. 2014 г., 15:16
Пожалуйста, дайте обновление по этой интересной теме. Сравнение с Backbone 'Модель и коллекция, Angular 'Способность взаимодействовать со спокойным бэкэндом плохая.
 Nicolas Zozol12 июн. 2014 г., 14:26
Попробуйте поиграть с моделями и коллекциями с помощью Backbone. Благодаря поддержке Underscore, это 'очень затягивает Я думаю, что одной из основных проблем с этим ng-Back были бы проблемы с событиями с геттерами и сеттерами.
 Evan Hobbs16 июн. 2014 г., 22:46
Как это закончилось? Вы заставили это работать?

Ответы на вопрос(7)

http://jsbin.com/ivumuz/2/edit

он демонстрирует способ работы с магистральными моделями с AngularJS. но соединение сеттеров / геттеров было бы лучше.

 Peter Ajtai07 окт. 2014 г., 21:05
сладкий пример @tenphi
 bjunix26 апр. 2014 г., 17:05
Я думаю, что это в ответ на skaterdav85 'ответ

если кто-то сделал это тоже. В моем последнем / первом угловом приложении я обнаружил, что в Angular очень не хватает моделей и коллекций (если, конечно, я что-то упускаю!). Конечно, вы можете получать данные с сервера, используя $ http или $ resource, но что делать, если вы хотите добавить собственные методы / свойства в свои модели или коллекции. Например, скажем, у вас есть коллекции автомобилей, и вы хотите рассчитать общую стоимость. Что-то вроде этого:

С Backbone Collection это было бы довольно легко реализовать:

carCollection.getTotalCost()

Но в Angular выВозможно, вам придется обернуть ваш пользовательский метод в службу и передать в него свою коллекцию, например так:

carCollectionService.getTotalCost(carCollection)

Мне нравится подход Backbone, потому что, на мой взгляд, он выглядит чище. Однако получить 2-х стороннюю привязку данных сложно. Проверьте этот пример JSBin.

http://jsbin.com/ovowav/1/edit

Когда вы редактируете числа, collection.totalCost не будет обновляться, потому что свойства car.cost не устанавливаются через model.set ().

Вместо этого я в основном использовал свои собственные конструкторы / "классы» для моделей и коллекций скопировал подмножество Backbone 's API от Backbone.Model и Backbone.Collection, и изменил мои собственные конструкторы / классы так, чтобы он работал с Angular 'привязка данных.

 Roy Lee08 авг. 2014 г., 20:09
Я думаю, что это ответ на проблему, с которой вы столкнулись :)jsbin.com/ivumuz/2/edit
 deadbabykitten20 апр. 2015 г., 23:18
В зависимости от того, с кем вы разговариваете, целью службы является абстрагирование логики обработки данных. Затем контроллер отвечает за оформление представления. В этом случае вы захотите установить логику для разбора, сортировки и преобразования ваших данных в этот контроллер.

restangular.

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

Видео:http://www.youtube.com/watch?v=eGrpnt2VQ3s

Вот, Parse похож на магистраль, но не совсем на магистраль. Вот где я начинаю свою идею проекта angularJS backboneJS

Это вариант использования:

Salesforce Mobile SDK (гибрид) имеет функцию smartstore / smartsync, которая ожидает магистральные модели / коллекции, которые сохраняются в локальном хранилище для автономного доступа.

И вы догадались, мы хотим использовать angularjs для остальной части гибридного приложения.

Действительный вопрос.

-Sree

Множество ограничений с текущей реализацией $ resource, которая, среди прочего, нене имеет внутреннего управления коллекциями, как Backbone.Collection. Написав свой собственный уровень управления коллекцией / ресурсами в угловом формате (используя $ http, а не $ resource), я 'Теперь я смотрю, смогу ли я заменить большую часть базовых шаблонов для базовых коллекций и моделей.

Пока что извлечение и добавление части безупречны и сохраняют код, но привязка этих базовых моделей (или, скорее, атрибутов внутри) к ng-моделям на входах для редактирования еще не работает.

@ericclemmons (github) сделал то же самое и заставил двоих хорошо пожениться - яСпрошу его, сделаю мой тест работоспособным и опубликую заключение ...

 bjunix26 апр. 2014 г., 16:58
Вы достигли прогресса в этом?
 Evan Hobbs16 июн. 2014 г., 22:45
Как это получилось?
 thejava23 нояб. 2016 г., 08:12
Есть ли успехи в этом? Я'Буду очень признателен, если это сработает

добавить только метод получения и установки для любого атрибута модели.

Backbone.ngModel = Backbone.Model.extend({
        initialize: function (opt) {
         _.each(opt, function (value, key) {
             Object.defineProperty(this, key, {
                 get: function () {
                     return this.get(key)
                  },
                 set: function (value) {
                     this.set(key, value);
                 },
                 enumerable: true,
                 configurable: true
             });
         }, this);
     }
 });

Смотрите скрипку:http://jsfiddle.net/HszLj/

Ваш ответ на вопрос