javascript - 没有任何东西处理 Emberjs 2 的操作

标签 javascript ember.js

我有一个应用程序,当搜索时返回一些数据以向我的用户显示。当我单击进行搜索时,我收到此错误,并且操作中的模型对象不显示已填充信息的模型。遵循错误和代码。

Uncaught Error: Nothing handled the action 'doSearchBooking'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.

组件

export default Ember.Component.extend({
    actions: {
        searchBooking(booking) {
            console.log('Component - 6', booking);
            this.sendAction('doSearchBooking', booking);
            this.set('booking', {});
        }
    }
});

表单组件

<form class="row" >
    <div class="col-sm-3">
          {{input type='text' value=booking.doc1 class='form-control'}}
     </div>
     <div class="col-sm-2">
          {{input type='text' value=booking.doc2 class='form-control'}}
     </div>
     <div class="col-sm-2">
         {{input type='text' value=booking.doc3 class='form-control'}}
      </div>
      <div class="col-sm-3">
          {{input type='text' value=booking.idDoc class='form-control'}}
       </div>
       <div class="col-sm-2 btn-form-pesquisa">
            <button class="btn btn-primary" {{action 'searchBooking' booking}}>Search</button>
       </div>
</form>

调用组件

{{search-booking booking=model.booking searchBooking='doSearchBooking'}}

我的 Controller

export default Ember.Controller.extend({
    actions: {
        doSearchBooking(booking) {
            console.log('controller - 6');
            this.sendAction('searchBooking', booking);
        }
    }
});

还有我的路线

export default Ember.Route.extend({
    model() {
        return Ember.RSVP.hash({
            data: this.store.createRecord('booking'),
            booking: {}
        });
    },
    actions: {
        searchBooking(booking) {
            let newSearch = this.store.createRecord('booking', {
                doc1: booking.doc1,
                doc2: booking.doc2,
                doc3: booking.doc3,
                idDoc : booking.idDoc 
            });

            newSearch.save();
        }
    }
});

最佳答案

问题是您将操作作为 searchBooking 传递给组件:

{{search-booking booking=model.booking searchBooking='doSearchBooking'}}

但是然后你尝试在组件中调用它:

this.sendAction('doSearchBooking', booking);

尝试像这样调用它:

this.sendAction('searchBooking', booking);

关于javascript - 没有任何东西处理 Emberjs 2 的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33634755/

相关文章:

javascript - Ember Actions 冒泡流

javascript - 如何在 Ember CLI 应用程序中访问 Ember 全局变量 'App'?

javascript - AJAX 调用不会取代 HTML

javascript - 如何避免 $http 请求后重复 .then() 和 .catch() ?

javascript - Ember.js 如何访问从 Ember.Select 中选择的整个对象?

ember.js - 在 Ember/Sproutcore 2.0 中将 Metamorph 脚本标签添加到 value 属性

javascript - 使用 HTMLBars 绑定(bind)静态和动态类

javascript - 我可以在对象属性上使用装饰器吗?

javascript - JCanvas 文本中的增量整数

javascript - 获取 HTML 字符串中的 HTML 子元素