当前位置: 首页 > 编程笔记 >

backbone.js 视图的初始化功能

周宏胜
2023-03-14
本文向大家介绍backbone.js 视图的初始化功能,包括了backbone.js 视图的初始化功能的使用技巧和注意事项,需要的朋友参考一下

示例

initialize 构造视图后,Backbone会立即调用它。

可选参数

该initialize函数接收传递给视图构造函数的所有参数。通常,用于传递视图默认选项的options哈希:

['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events']

您可以将任何自定义属性添加到选项哈希和/或自定义参数。

var MyView = Backbone.View.extend({
    initialize: function(options, customParam){
        // 确保“选项”是一个哈希,以避免未定义的错误。
        options = options || {};
       this.customAttribute= options.customAttribute;
       this.customParam= customParam;
    },
});

并构造视图:

var view = new MyView({
    model: new Backbone.Model(),
    template: "<p>a template</p>",
    customAttribute: "our custom attribute"
}, "my custom param");

请注意,所有默认视图选项都会自动添加到视图对象,因此无需在initialize函数中执行此操作。

立即渲染图案

该initialize方法的一种常见模式是调用该render方法,以便立即渲染任何新构造的View

仅当构造对象应立即将其呈现到HTML文档,绑定所有事件侦听器并执行与在DOM中放置内容相关的所有其他操作时,才使用此模式。

var MyView = Backbone.View.extend({
    initialize: function() {
        this.render();
    },

    render: function() {
        this.$el.html("<p>I'm running!</p>");
    }
});

但是,应注意,在手动(或通过其他方法)调用之前,不应立即渲染某些视图.render。

另一个常见的initialize模式是将内容添加到View对象中,稍后将需要这些内容:

var MyView = Backbone.View.extend({
    el: "body",
    template: _.template( "<p>This is <%= name %>'s page</p>" ),

    initialize: function(){
       this.name= "Bill";
        
        this.render();
    },

    render: function(){
        var viewTemplateData = {
            name: this.name
        };

        this.$el.html( this.template( viewTemplateData ) );
    }
});

DOM现在将包含<p>This is Bill's page</p>在中body。

 类似资料:
  • 问题内容: 我在Go中有一个函数,如下所示: 我想用参数(“ Bob”,“ New York”,“ Builder”,30、1000)调用此函数,但我想在调用函数时使用字段名称。但是,以下技术均无效(它们会引发“未解决的参考错误”): 应该如何正确完成?我在初始化结构时使用字段名称没有问题,但是对于函数来说,似乎缺少了一些东西。 问题答案: 该规范不允许你调用函数时指定参数名称。您只能列出希望作为

  • 我在代码中使用了合成属性。但想知道它如何以及何时初始化Android中的每个视图。 我们只提供导入和访问每个视图的ID。何时为视图对象分配内存?

  • 本文向大家介绍JavaThreadLocal Java 8功能初始化,包括了JavaThreadLocal Java 8功能初始化的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 可将PS Vita的开始画面恢复为购买时的状态。 轻触[初始化]>[初始化开始画面的图像]>[初始化]。

  • 问题内容: 加载视图时,我想在其关联的控制器中运行一些初始化代码。 为此,我在视图的主要元素上使用了ng-init指令: 并在控制器中: 第一个问题:这是正确的方法吗? 接下来,事件顺序发生了问题。在视图中,我有一个“保存”按钮,它使用如下指令: 该功能在控制器中定义: 如您所见,它使用在函数中初始化的标志。 问题:该视图被加载的情况下,isClean函数被调用 之前的功能,因此,该标志是。我该怎

  • Initialization 初始化 Although it doesn’t look superficially very different from initialization in C or C++, initialization in Go is more powerful. Complex structures can be built during initialization a