1
我有我注入我的应用程序控制器,像这样(从ember js cookbook拍摄)自定义ClockService对象:烬控制器:计算财产不重新计算折扣注入属性
App.ClockService = Em.Object.extend({
pulse: Ember.computed.oneWay('_seconds').readOnly(),
tick: function() {
var clock = this;
Ember.run.later(function() {
var seconds = clock.get('_seconds');
if (typeof seconds === 'number') {
clock.set('_seconds', seconds + (1/4));
}
}, 250);
}.observes('_seconds').on('init'),
_seconds: 0
});
Ember.Application.initializer({
name: 'clockServiceInitializer',
initialize: function(container, application) {
container.register('clock:service', App.ClockService);
application.inject('controller:application', 'clock', 'clock:service');
}
});
而且我创建的应用程序中的计算性能从脉冲属性控制器在时钟服务:
App.ApplicationController = Em.ObjectController.extend({
currentTime: function(){
return moment().format('MMMM Do YYYY, h:mm:ss a');
}.property('clock.pulse')
});
时间戳(使用Momentjs)是在屏幕上的主应用程序可见,但它不与脉冲重绘。难道我做错了什么?
UPDATE:
以下应用牵引销更新,我现在有如下工作方案:
App.ApplicationController = Em.Controller.extend({
setTime: function() {
var time = moment().format('MMMM Do YYYY, h:mm:ss a');
this.set('currentTime', time);
Em.run.later(this, this.setTime, .9999);
}.on('init'),
currentTime: undefined
});
感谢您的提示,并为头顶+1(无双关语意)。 – coderatchet
虽然我有一个问题,我希望应用程序路由来管理模型,并简单地使用Em.Controller禁止我这样做,我将如何避免出现'错误:断言失败:错误:断言失败:无法委托set'(currentTime',2014年4月28日,下午5:37:52)到对象代理的'content'属性:其'content'未定义.'我的applicationRoute已经返回一个模型 –
coderatchet
out'currentTime:undefined'是问题所在。你有没有在jsbin中定义它的原因? – coderatchet