Ember.js - 在车把内初始化的视图中调用方法
Ember.js - call methods in views initialized within handlebars
我有一个App.WidgetView
负责设置和渲染一个非常昂贵的第三方 ui 元素,让我们称这个 ui 元素为widget
。此widget
具有refresh()
方法。我在App.WidgetView
中定义了一个调用widget.refresh()
的refreshWidget()
方法。
App.WidgetView = Em.View.extend({
content: null,
widget: null,
init: function () {
this._super();
//initialize widget using content
},
refreshWidget: function () {
this.get('widget').refresh();
}
});
我有一个WidgetView
列表,使用#each
循环从App.widgetController
中提取数据
{{#each App.widgetController}}
{{view App.WidgetView contentBinding="this"}}
{{/each}}
现在我需要在App.widgetController
中有一个refreshAll()
方法,并且我不太清楚如何干净地做到这一点。现在我在App.widgetController
有一处refresher
房产,从0
开始,每次打电话refreshAll
都会被起诉。
App.widgetController.reopen({
refresher: 0,
refreshAll: function () {
this.incrementProperty('refresher');
}
});
那么在App.WidgetView
中,有一个refresherBinding
被束缚在App.widgetController.refresher
上,一个观察者召唤refreshWidget
当refresher
发生变化时
App.WidgetView.reopenClass({
refresherBinding: 'App.widgetController.refresher',
refresherChanged: function () {
this.refreshWidget();
}.observes('refresher')
});
它确实有效,但我想知道是否有更清晰的方法可以做到这一点。
听起来你应该
有一个负责实现refreshAll
的父视图,然后它可以循环访问它的子视图,告诉他们刷新。
相关文章:
- 从Backbone中的另一个视图调用新视图
- 从AngularJS中的视图调用控制器函数
- 从视图调用异步加载模块函数
- 从Sench Touch 2中的视图调用控制器javascript函数
- 主干 - 从我的原型视图调用方法.js
- 从 JavaFX Web 视图调用 Java 方法
- 在 Rails 中的条件下从视图调用引导模式
- 代码点火器:从视图调用模型 - 数据库内容似乎冻结
- 尝试将数据数组设置为从视图调用函数后$scope
- 从主干视图调用模板中的变量
- 如何在单独的文件中从另一个视图调用主干视图函数
- 从视图调用控制器方法
- 如何在发生更改事件时从编辑器视图调用单元格视图的render方法
- JQ Mobile:从列表视图调用具有多个参数的函数
- Backbone.js:从嵌套视图调用函数的代码不起作用
- MVC 3在JavaScript中从视图调用Action方法
- 从视图调用控制器函数!asp.net MVC
- 如何从Rails视图调用内部API(用于ReactJS预呈现程序)
- 用BackboneJS从子视图调用视图函数
- 如何从mvc视图调用java脚本函数