У меня возникли некоторые проблемы в приложении Ember.js и некоторые sendAction, которые не работают. В принципе, у меня есть: - компонент ввода (тот, который запускает действие) - один контроллер/шаблон (содержащий рендеринг компонента) - еще один контроллер/шаблон, в котором мы визуализируем предыдущий контроллер.Ember.js: действия контроллера, не вызванные 'sendAction' от компонента
Вот код.
Во-первых, текстовое поле компонента:
Tm.JiraCloudInputComponent = Ember.TextField.extend({
keyDown: function (event) {
if (event.keyCode === 27) {
this.sendAction('cancelJiraCloudUrl');
}
if (event.keyCode === 13) {
event.preventDefault();
this.sendAction('saveJiraCloudUrl');
}
},
blur: function() {
this.sendAction('saveJiraCloudUrl');
}
})
Контроллер, который имеет действия:
Tm.JiraCloudController = Ember.Controller.extend({
jiraCloudEnabled: Ember.computed.oneWay('content.jiraCloudEnabled'),
jiraCloudUrl: Ember.computed.oneWay('content.jiraCloudUrl'),
successMessage: '',
errorMessage: '',
actions: {
saveJiraCloudUrl: function() {
if (Tm.isEmpty(this.get('jiraCloudUrl'))) {
this.unlinkJiraCloud();
} else {
this.linkJiraCloud();
}
},
cancelJiraCloudUrl: function() {
this.set('jiraCloudUrl', this.get('model.jiraCloudUrl'));
this.set('jiraCloudEnabled', this.get('model.jiraCloudEnabled'));
this.clearMessages();
}
}
});
и связанный с ним шаблон:
{{#default-box id="jira-cloud-settings" class="box-full-width"}}
{{box-header title="settings.jira_cloud"}}
{{#box-content}}
{{jira-cloud-input class="form-control" value=jiraCloudUrl placeholder="Jira cloud url"}}
<button type="button" class="btn btn-default" title="Link Jira cloud" {{action "saveJiraCloudUrl"}}>Link Jira cloud</button>
{{/box-content}}
{{/default-box}}
Примечание: в коробках (по умолчанию -box, box-content) также являются компонентами.
И наконец, шаблон, в котором мы предоставляем предыдущий контроллер:
{{render "jiraCloud" content}}
Я не могу найти что-либо понятно, почему он не работает. Никакие ошибки не вызваны вызовами «sendAction». Обратите внимание, что действие на кнопке работает как шарм.
Спасибо за вашу помощь, Винсент
Примечания: Я пытался удалить компонент коробки просто в случае, никакого эффекта ... – Vincent