在分解Backbone.js的set方法时避免作用域陷阱
Avoiding scope pitfalls when breaking up Backbone.js set method?
我使用的是Backbone.js的MVC。
在我的Model.set()方法中,我想在触发更改事件之前等待数据加载。
//Pseudo
set() {
create changed attributes ... then:
dataHelper.load(changedAttributes, stabilizeModel)
}
stabilizeModel() {
now set changedAttributes on model ...
... and trigger change events
}
稳定化模型方法的正确方法是:
1)可以访问changedAttributes
2)有正确的范围(被称为从"dataHelper"回调)
我不认为你应该试图覆盖model.set()。相反,你应该利用它:
function load() {
var attr_to_load = { ... };
var attr = dataHelper.load(attr_to_load );
this.set(attr);
}
我需要更多的信息才能给你更好的答复。
相关文章:
- 监视函数从服务返回不起作用,但作用域函数起作用
- 将作用域存储在JSON中
- 从控制器继承了隔离的作用域以生成可重用的指令
- 从ng模板访问作用域
- 调用私有作用域
- 对父作用域的指令更新延迟了一步
- 正在$rootScope上达到控制器作用域$在内部控制器上
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- 这两个关于 JavaScript 作用域链的例子有什么区别?
- 在具有命名作用域的自定义Polymer元素中隐藏表行
- AngularJS指令隔离作用域
- Angularjs:修改js中的作用域,稍后在页面中使用
- 访问多个指令的隔离作用域
- Javascript作用域和Ajax调用;工作不正常
- 向Angular作用域对象添加对象数组——TypeError
- ng重复中的ng模型-初始化唯一作用域属性
- 具有ng模型依赖性的孤立作用域陷阱
- q 从 .then 函数分配给更高级别的作用域变量是否存在任何陷阱
- 在分解Backbone.js的set方法时避免作用域陷阱
- Promise的JavaScript作用域陷阱