0
我想知道如何注入对象的范围在控制器中。Ember的范围在控制器中注入的依赖关系
说我创建一个服务于月返回天的数组,我注册,并在一个名为BookingsController控制器注入它,像这样
Todos.Bookingmonth = Ember.Object.extend({
currMonth: 1,
currYear : 2014,
names : [ 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat' ],
//
setCurrMonthYear: function(currMonth, currYear){
//
this.currMonth = parseInt(currMonth, 10);
this.currYear = parseInt(currYear, 10);
},
//
getDaysArray : function() {
//
var date = new Date(this.currYear, this.currMonth - 1, 1),
days = [];
while (date.getMonth() === this.currMonth - 1) {
//
days.push({num : date.getDate(), name : this.names[date.getDay()]});
date.setDate(date.getDate() + 1);
}
//
return days;
}
});
Todos.register('bookingmonth:main', Todos.Bookingmonth);
Todos.inject('controller:bookings', 'bookingmonth', 'bookingmonth:main');
Todos.BookingsController = Ember.ArrayController.extend({
title : "Bookings listing",
monthDays : this.get('bookingmonth').getDaysArray(),// this.get is undefined!!
actions: {
}
});
我想这样做的原因,是因为我需要在我的Bookings模板中访问n个日期数组,但这与应用程序逻辑无关,既不属于主模型数据(顺便说一句,这是预订的Fixture)。我只是想产生在我的控制器的阵列,并将其分配给属性(按照上面的代码),然后循环它在模板中,像这样
<ul id="month-bookings-slots">
{{#each slot in monthDays}}
<li>SLOT</li>
{{/each}}
</ul>
我知道我大概可以移动,同时从日期逻辑该服务作为控制器的'私有'方法,并且可能更容易将其返回的日期数组分配给控制器的通用属性,但希望尝试通过服务来完成似乎更好的逻辑分离
也许我对注入的依赖关系的范围有点困惑,会很高兴听到我失踪/任何建议。谢谢