建立集合的一個範例,返回所在資源的位置。
collection.url()
<!DOCTYPE html> <head> <title>Collection Example</title> <script src="https://code.jquery.com/jquery-2.1.3.min.js" type="text/javascript"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.2/underscore-min.js" type="text/javascript"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min.js" type="text/javascript"></script> </head> <body> <script type="text/javascript"> var MyModel = Backbone.Model.extend({}); ////'MyModel' is a model name //The 'MyCollection' is an instance of the collection var MyCollection = Backbone.Collection.extend({ model: MyModel //The model 'MyModel' is specified by overriding the "model" property }); //The model "MyBlog" contains default values for 'user' and 'myposts' attributes var MyBlog = Backbone.Model.extend({ defaults: { user: null, myposts: [] }, initialize: function () { var myval = this; //Model 'MyModel' gets the 'user' and 'myposts' from the model 'MyBlog' by referring to the current object this.MyModel = new MyModel(this.get('user')); this.posts = new MyCollection(this.get('myposts')); this.posts.url = function () { return myval.url() + '/myposts'; }; }, //It enables the url() function by using the id attribute to generate the URL as "/MyBlog/50/myposts/26" urlRoot: '/MyBlog/' }); var attributes = { id: 50, myposts:[{id: 26}] } //The model "MyBlog" will access the attributes and display the url using 'url()' function val = new MyBlog(attributes); val.posts.each(function (MyModel) { document.write("The url pattern is: ",MyModel.url()); }); </script> </body> </html>
讓我們進行以下步驟來看看上面的程式碼工作:
儲存上述程式碼在檔案url.html
在瀏覽器開啟這個HTML檔案。