Ответ 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>