gpt4 book ai didi

backbone.js - View 是否应设置模型数据?

转载 作者:行者123 更新时间:2023-12-04 13:34:24 24 4
gpt4 key购买 nike

我只是想找出一个可能简单的问题。

View 应该直接设置模型数据还是仅调用更改其自身数据的模型方法?

最佳答案

像软件开发中的其他所有内容一样,“取决于”。

如果您在 View 中使用表单输入,而只需要将这些输入中的数据获取到模型中,则直接设置数据。您可以通过多种方式执行此操作,包括在输入字段中进行“更改”事件,如下所示:

MyView = Backbone.View.extend({
events: {
"change #name", "setName"
},

setName: function(e){
var val = $(e.currentTarget).val();
this.model.set({name: val});
}
});

另一方面,如果您要启动业务逻辑和碰巧在模型中设置数据的其他代码(但实际上只是将其作为业务逻辑的一部分),则应该在模型上调用方法。

一个“状态机”将是您何时执行此操作的一个很好的示例。或者,在我写的图像库中,我对选择要显示的图像有一些逻辑。如果已经选择了图像,则不要再次选择它。我将此逻辑放在图像模型的一种方法中:
Image = Backbone.Model.extend({
select: function(){
if (!this.get("selected")){
this.set({selected: true});
}
}
});

如此处所示,我喜欢遵循一个简单的规则,即如果对set的调用周围的逻辑为零,那么无论我在哪里,都可以直接对其进行设置。如果存在与模型相关的任何逻辑,则将其放在模型中。

无论哪种方式,当您要设置数据时,都应使用 set方法。绕过此步骤并直接通过 model.attributes设置模型的属性将防止触发许多Backbone的代码,并可能给您带来问题。

关于backbone.js - View 是否应设置模型数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7631752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com