Backbone.js 模型中的依赖属性

发布于 2024-12-11 17:33:06 字数 344 浏览 0 评论 0原文

如果我的模型中的两个值(a 或 b)发生变化,则两个监听视图需要计算第三个值 c。

//Pseudo 
mainModel 
  a : 2000 
  b : 3000

view1 
helper.calculateC(this.model.get(a), this.model.get(b)) 

view2 
helper.calculateC(this.model.get(a), this.model.get(b)) 

我宁愿将依赖属性 c 放入模型中(作为 计算相当复杂,“c”稍后可能被允许 由用户覆盖。)什么是好的做法?我应该延长 模型,制作子模型还是什么?

谢谢!

If either of two values - a or b - change in my model, two of the listening views need to calculate a third value c.

//Pseudo 
mainModel 
  a : 2000 
  b : 3000

view1 
helper.calculateC(this.model.get(a), this.model.get(b)) 

view2 
helper.calculateC(this.model.get(a), this.model.get(b)) 

I'd rather put the dependent attribute c in the model (as the
calculation is rather complex and "c" might later on be allowed to be
overridden by the user.) What is good practice? Should I extend the
model, make a submodel or what?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

失退 2024-12-18 17:33:06

您可以在初始化调用时将 模型 上的绑定添加到其自己的更改事件。

initialize: function() {
  this.bind("change", this.calculateC);
},

calculateC: function() {
  this.c = //fill in the blanks
}    

更具体地说,您可以仅绑定您需要的属性。

  this.bind("change:a", this.calculateC);
  this.bind("change:b", this.calculateC);

You can add a binding on the model to its own change event on the initialize call.

initialize: function() {
  this.bind("change", this.calculateC);
},

calculateC: function() {
  this.c = //fill in the blanks
}    

More specifically, you can bind only on the attributes you need.

  this.bind("change:a", this.calculateC);
  this.bind("change:b", this.calculateC);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文