强制模板刷新ember.js
Force template refresh ember.js
我正在使用I18n本地化包来处理我的应用程序的切换语言部分。它使用一个全局变量来设置所需的语言,并使用一个json文件来存储翻译。
由于语言的切换只是全局变量中的一个变化,ember不会检测到它,也不会自动呈现模板。我通过应用程序控制器中的一个操作强制它:
Extranet.ApplicationController = Ember.ObjectController.extend(
{
actions:
{
localToFr: function()
{
this.localisation('fr'); // this changes the global variable
this.get('target.router').refresh(); // this is what refresh the template
},
localToEn: function()
{
this.localisation('en');
this.get('target.router').refresh();
}
},
localisation: function(lg)
{
I18n.locale = lg;
}
})
我对这个解决方案有两个问题:1) 应用程序模板没有通过我的重新绘制
this.get('target.router').refresh();
2) 我的另一个问题是,它不适用于不请求服务器访问的模板(例如:路由"authSession"的嵌套)
Extranet.Router.map(function()
{
this.resource(
'parkings', {path:'/'}, function ()
{
this.route('parking', {path:'/parking/:parking_id'});
this.route('historique', {path:'/parking/:parking_id/historique'});
this.route('sessAct', {path:'/parking/:parking_id/sessAct'});
this.route('rapport', {path:'/parking/:parking_id/rapport'});
}
);
this.resource(
'authSession', function ()
{
this.route('login');
this.route('logout');
}
);
}
);
我也遇到了类似的问题。我只是在主视图上使用了View.rerender()
,这是我的一种形式。
相关文章:
- 强制模板刷新ember.js
- Ember.js-接口状态应该存储在哪里
- Uncaught TypeError:undefined不是函数-ember js
- 手动触发ember.js中的属性更改
- Ember.js(2.5.0)如何设置嵌套对象值
- 如何使用ember.js在操作中传递当前上下文中目标旁边的信息
- ember-js组件初始化不同的函数
- Ember.js:liverload服务器不工作
- Ember.js:将Em.$.getJSON转换为promise并将响应绑定到控制器上下文的正确方法
- Ember.js-如何使用Ember.Router实现所选项目
- 如何将Ember.js控制器连接到视图
- ember.js:转换到相同的路由会产生堆栈溢出问题
- 获取ember JS中的当前URL
- 重定向不带哈希的URL-Ember.JS
- 加载Ember.js后调用函数
- Ember.js(v2.4.5)组件不是't错过第二个动作
- Ember JS属性访问器
- Ember.js and Pagination
- 加载json时出现Ember.js和Ember数据错误
- Ember.js:接受的子组件和父组件之间通信的最佳实践