2015-06-09 122 views
2

我有一些問題得到它的工作。我認爲我做得對,但似乎並非如此。從組件中的操作調用控制器動作

index.hbs

{{#if image}} 
    {{image-cropper imageToCrop=image setCroppedImage=setCroppedImage}} 
    <br> 
    {{/if}} 
{{file-input action="setImage"}} 

文件輸入組件拍攝圖像中,並且將圖像屬性到數據的URL,然後使圖像農作物分量出現。

圖像cropper.hbs

<div class="cropper-container"> 
    <img src="{{imageToCrop}}"> 
</div> 
<button {{action 'cropImage'}}>Crop Image</button> 
{{croppedImage}} 

當我點擊按鈕,它調用圖像cropper.js文件cropImage行動

圖像cropper.js

actions: { 
    cropImage: function() { 
     var container = this.$(this.get('cropperContainer')); 
     var croppedImage = container.cropper('getCroppedCanvas'); 
     this.sendAction('setCroppedImage', croppedImage); 
    } 
} 

所以我在這裏使用this.sendAction();來撥打該組件,這是指回動作名稱的組件在index.hbs文件,我認爲應該調用動作名稱控制器上的=標誌

index.js左側(控制器上動作名稱)

setCroppedImage: function(croppedImage) { 
    console.log('set cropped image called on index controller'); 
    this.set('finalCroppedImage', croppedImage); 
}, 

console.log語句不會被調用,所以我知道該控制器的動作沒有被稱爲要麼。

我需要一些幫助來理解如何讓這個工作在這裏。

回答

1

更多的閱讀後,我發現我需要添加 「」 到動作的名稱,像這樣

{{image-cropper imageToCrop=image setCroppedImage=setCroppedImage}} 

{{image-cropper imageToCrop=image setCroppedImage="setCroppedImage"}} 
相關問題