Chciałbym wiedzieć, jaka jest różnica między używaniem url
lub urlRoot
. Przeczytałem dokumentację (backbonejs.org/#Model-url), ale nadal uważam, że brakuje mi wiedzy w tej dziedzinie i chciałbym wiedzieć więcej. Kiedy musisz użyć url
? A w innym przypadku, kiedy trzeba użyć urlRoot
?Jaka jest różnica między url vs urlRoot
Odpowiedz
.urlRoot
jest dostępna tylko w modelu i jest przydatna tylko wtedy, gdy model nie jest częścią kolekcji lub gdy chcemy nadpisać właściwość .url
kolekcji, której częścią jest ten model.
Innymi słowy, model nie wymaga ani .url
ani .urlRoot
właściwości, gdy jest częścią kolekcji z zestawem .url
nieruchomości, w tym przypadku model ten będzie wykorzystywał że Collection .url
jako swój własny .urlRoot
.
Oto kilka przykładów pokazujących różnicę. Po uruchomieniu skryptów żądania HTTP można zobaczyć w panelu sieci przeglądarki.
Przykład 1. Post nie należy do kolekcji. urlRoot
definiuje podstawową część adresu URL. Po pobraniu modelu jego identyfikator jest dołączany do 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>
Przykład 2 Wywołanie pobrać ze wzorem, który jest częścią zbioru wykorzystuje Collection url
jako urlRoot
var Post = Backbone.Model.extend();
var Posts = Backbone.Collection.extend({
url: 'http://jsonplaceholder.typicode.com/posts',
model: Post
});
var posts = new Posts();
posts.add({id: 2});
posts.first().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>
Przykład 3.url
ustawiony na modelu dosłownie użyje tego adresu URL dla dowolnej instancji modelu.
var Post = Backbone.Model.extend({
url: 'http://jsonplaceholder.typicode.com/posts'
});
var secondPost = new Post({ id: 2 });
secondPost.fetch();
/*requests http://jsonplaceholder.typicode.com/posts */
<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>
Przykład 4.url
może być funkcją i zacznie znowu sensu.
var Post = Backbone.Model.extend({
url: function(){
return 'http://jsonplaceholder.typicode.com/posts/' + this.get('slug');
}
});
var secondPost = new Post({ slug: 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>
- 1. Jaka jest różnica między NSURLSessionDataTask vs NSURLSessionDownloadTask
- 2. Jaka jest różnica między sjlj vs karzeł vs seh?
- 3. webpack "--watch" vs "--hot": jaka jest różnica?
- 4. Jaka jest różnica między kopiowaniem a klonowaniem?
- 5. Jaka jest różnica między? : i ||
- 6. Jaka jest różnica między $ i $$?
- 7. RS256 vs HS256: Jaka jest różnica?
- 8. CATALINA_OPTS vs JAVA_OPTS - Jaka jest różnica?
- 9. Jaka jest różnica między Cassandra vs Oracle Coherence?
- 10. Jaka jest różnica między colorWithSRGBRed a colorWithDeviceRed vs colorWithCalibratedRed
- 11. Jaka jest różnica między AtomicReference <Integer> vs. AtomicInteger?
- 12. Jaka jest różnica między reindexall() vs reindexeverything() w Magento?
- 13. setEnabled() vs setClickable(), jaka jest różnica?
- 14. Jaka jest różnica między LDADD i LIBADD?
- 15. $ dirty vs $ invalid: Jaka jest różnica?
- 16. Jaka jest różnica: ConcurrentUpdateSolrServer vs HttpSolrServer vs CommonsHttpSolrServer?
- 17. javax.ws.rs.core.Cookie vs javax.ws.rs.core.NewCookie, jaka jest różnica?
- 18. Jam vs Bower, jaka jest różnica?
- 19. PHP post_max_size vs upload_max_filesize, jaka jest różnica?
- 20. mb_strpos vs strpos, jaka jest różnica?
- 21. Rails wrap_parameters vs include_root_in_json, jaka jest różnica?
- 22. Jaka jest różnica między Python vs Jython vs IronPython vs wxPython?
- 23. Jaka jest różnica między cat_id a term_id?
- 24. Jaka jest różnica między Subtotal i BaseSubtotal?
- 25. Jaka jest różnica między IEnumerable a tablicami?
- 26. Jaka jest różnica między DetachedCriteria i ICriteria
- 27. Jaka jest różnica między & # x00A0; i ?
- 28. Jaka jest różnica między == a === w Verilog?
- 29. Jaka jest różnica między lex i yacc
- 30. jaka jest różnica między dijit i dojo
check to http://stackoverflow.com/questions/16862014/backbone-js-models-and-collection-urls – Animesh
Dziękuję bardzo! –