我正在將控制器傳遞給emberjs component。控制器有一個名爲dateArray的計算屬性,該屬性包含一組日期。點擊一個#linkTo指向預約模板後,我可以進入控制檯,並做到:Emberjs-1.0控制器中的組件和計算屬性
b = App.__container__.lookup("controller:appointment")
c = b.get('dateArray')
and it returns [Array[2]]
然而,當我通過該控制器爲emberjs組件與
{{date-picker datePickerController=controller}}
在組件內部,我可以得到正確的控制器實例,使用下面的代碼
datePicker = _this.get('datePickerController');
console.log(datePicker), shows the dateArray with its content.
但數組顯示爲空,當我基於上面的實例使用下面的代碼發現它時。
controllerContent = datePicker.get('dateArray');
但是如果我添加dateArray在約會模板車把表情,這使得它的內容:
{{dateArray}}
那麼,爲什麼它的dateArray裏面空空如也emberjs組件當控制器實例emberjs組件有dateArray
控制器:
App.AppointmentController = Ember.ObjectController.extend({
needs: [ 'timeSlot'],
timeSlotController: Ember.computed.alias('controllers.timeSlot'),
dateArray: function(){
_this = this;
fetchDates = [ ];
var aa = _this.get('content');
var yy = aa.get('timeSlots')
yy.then(function(hh){
nn = hh.map(function(item){ return moment.utc(item.get('startTime')).format("YYYY-MM-DD"); });
pp = fetchDates.pushObjects([nn]);
return nn;
});
return fetchDates;
}.property('[email protected]')
});
的emberjs組件:
App.DatePickerComponent = Ember.Component.extend({
datePickerController: null,
didInsertElement: function() {
this._super();
_this = this;
var datePicker;
datePicker = _this.get('datePickerController');
//console.log(datePicker);
var controllerContent = datePicker.get('dateArray');
//returns nil
alert(controllerContent);
});// closes didInsertElement
}
});
如果添加breakpointinto的dateArray計算的屬性,當你調用此線路上再次得到它被擊中的:var controllerContent = datePicker.get('dateArray'); – Kingpin2k