Я хотел бы знать, в чем разница между использованием url
или urlRoot
. Я прочитал документацию (backbonejs.org/#Model-url), но я все еще чувствую, что мне не хватает знаний в этой области, и я хотел бы узнать больше. Когда вам нужно использовать url
? И в другом случае, когда вам нужно использовать urlRoot
?
В чем разница между url vs urlRoot
Ответ 1
.urlRoot
доступен только в модели и полезен только тогда, когда либо модель не является частью коллекции, либо если вы хотите переопределить свойство .url
коллекции, частью которой является эта модель.
Другими словами, модель не требует ни свойства .url
, ни .urlRoot
, когда она является частью коллекции с набором свойств .url
, и в этом случае эта модель будет использовать эту коллекцию .url
как он принадлежит .urlRoot
.
Вот несколько примеров, которые показывают разницу. Когда вы запускаете скрипты, http-запросы можно увидеть в сетевой панели браузера.
Пример 1. Сообщение не входит в коллекцию. urlRoot
определяет базовую часть URL-адреса. Когда модель извлекается, ее идентификатор добавляется к urlRoot
.
var Post = Backbone.Model.extend({
urlRoot: 'http://jsonplaceholder.typicode.com/posts'
});
var secondPost = new Post({ id: 2 });
secondPost.fetch();
/*requests http://jsonplaceholder.typicode.com/posts/2 */
<script src='http://code.jquery.com/jquery.js'></script>
<script src='http://underscorejs.org/underscore.js'></script>
<script src='http://backbonejs.org/backbone.js'></script>