2013-03-27 1 views
0

Как экспортировать метод объекта, который вызывается извне на странице HTML.Экспортировать свойство объекта

Код по JavaScript:

my.namespace.FeedbackController = Class.create(); 
Object.extend(my.namespace.FeedbackController.prototype, { 
initialize:function(fid, fitem){ 
    this.fid = fid, 
    this.feedback_item = fitem; 
}, 
link_click : function(fstate) { 
    alert(fstate); 
} 
}); 
goog.exportSymbol('my.namespace.FeedbackController', my.namespace.FeedbackController); 
goog.exportProperty(my.namespace.FeedbackController, 'link_click', my.namespace.FeedbackController.link_click); 

На странице есть несколько элементов, которые люди дают обратную связь о. HTML-код:

<script type="text/javascript"> 
    feedback_handlers = new Array(); 
    feedback_handlers[16] = new my.namespace.FeedbackController(16, 'useful'); 
</script> 
<a href="javascript:feedback_handlers['16'].link_click('useful');">Useful</a> 

При нажатии на ссылку 'Полезная' Я получаю TypeError:. Feedback_handlers ['16' ] link_click не является функцией.

Я что-то упустил?

ответ

1

путь, в котором вы расширяете свой прототип функции Object.extend не распознается Застежка-компилятором. Вы должны будете использовать прямые задания прототипа:

my.namespace.FeedbackController.prototype.initialize = function() ... 

Если вы компилируете с многословными предупреждениями, вы должны получить предупреждение о неопределенных свойствах.