我可以在ember中编写helper以避免代码重复
Where I can write helper in ember to avoid code duplication
我有几行重复的代码
Ember.$(".close").trigger('click');
window.parent.showRegister();
在:adapters
、controllers
和routes
中。
哪里是编写帮助程序(函数或操作)并在不同位置执行的最佳位置。
例如,我可以在controller
中编写函数,但我不知道如何在RESTAdapter
中访问controllers
。
您可以或不能访问另一个抽象的主要原因是对软件复杂性的控制,试图将其保持在最低限度。遵循SOLID、低耦合/高内聚等原则可以帮助我们维护复杂的软件系统,提高系统的可理解性,并降低开发过程中出错的可能性。
Ember在某种程度上遵循MVC模式,因此我不建议(1)在控制器/适配器/路由器中保留用于DOM操作的代码,以及(2)以这种方式耦合适配器、控制器和路由。我确信有一种方法可以将这些代码放在View或Ember.App类之外的模块中;或者设置处理这种情况的路线图。
如果不是这样,或者你需要一个简单直接的解决方案,你可以使用丑陋的魔术结构来访问Ember:中的任何东西
App.__container__.lookup('controller:controllerName'); // controllers
App.__container__.lookup('router:main'); // routes
App.__container__.lookup('store:main'); // store, adapters, serializers
Ember.View.views['emberViewId'] // objects are dying here occasionally
双下划线告诉我们,这不是在应用程序中构建通信的推荐方式。:)
您可以使用helper创建一个新的Ember对象作为其中的方法。
然后,您可以在应用程序中注册这些帮助程序,并将其注入控制器、模型和视图中。
参见http://emberjs.com/guides/understanding-ember/dependency-injection-and-service-lookup/#toc_dependency-注入代码寄存器注入代码了解更多细节
App = Ember.Application.extend();
Ember.Application.initializer({
name: 'logger',
initialize: function(container, application){
application.register('logger:main', {log: function(m){ console.log(m); }}, {instantiate: false});
application.inject('route', 'logger', 'logger:main');
}
});
App.create();
像一样使用
App.IndexRoute = Ember.Route.extend({
activate: function(){
// The logger property is injected into all routes
this.logger.log('Entered the index route!');
}
});
- 从桌面读取python文件时高亮显示代码
- 如何将函数包装在函数中以避免代码重复
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 货币代码为欧元-金额的格式不应包含小数
- Regex代码只允许一个空格
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 从var向代码隐藏函数传递值
- 如何动态插入jquery代码
- 如何在php变量中嵌入JQuery代码
- 代码不会验证
- 如何从rails中的代码中删除新行( )
- Angularjs代码未在匿名函数中运行
- 如何做到这一点,使代码在不传递条件后执行函数
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 面向对象的Javascript代码在IE7中不起作用
- 将 jQuery 代码添加到 Index.aspx 页面
- 我可以在ember中编写helper以避免代码重复
- 我是否需要在以下javascript代码中导出helper函数
- Zend框架:在Javascript代码中插入对View helper的调用
- 如何使用lodash作为以下代码的helper