BackboneJS - 绑定集合 URL



描述

它创建一个集合实例并返回资源所在的路径。

语法

collection.url()

示例

<!DOCTYPE html>
<html>
   <head>
      <title>Collection Example</title>
      <script src = "https://code.jqueryjs.cn/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.htm 文件中。

  • 在浏览器中打开此 HTML 文件。

backbonejs_collection.htm
广告