为什么我的动作没有用ember js触发模态内部?

时间:2018-10-15 13:50:16

标签: ember.js

这是我的模板代码:

{{#if showDialog}}
  {{#modal-dialog
    translucentOverlay=true
    containerClass="modal-dialog__container"
    overlayClass="modal-dialog__overlay"
    wrapperClass="modal-dialog"
    }}

    <h1 class="modal-dialog__title">Type your goal here</h1>
    {{input class="settings-row__input"}}

    <div class="wrap_buttons">
      <input {{action "cancelOrgGoal"}} type="button" name="Cancel" value="Cancel" class="btn btn_cancel">
      <input {{action "saveOrgGoal"}} type="button" name="Create" value="Select" class="btn btn_create">
    </div>

  {{/modal-dialog}}
{{/if}}

这是我的js代码:

actions: {
    saveOrgGoal() {
      console.log('hi');

      let orgGoal = store.createRecord('organization-goal', {
        description: 'Rails is Omakase',
      });

      orgGoal.save(); // => POST to '/posts'

      this.set('showDialog', true);
    },
    cancelOrgGoal() {
      console.log('hi');
      this.set('showDialog', false);
    }
  }

我正在使用插件ember-modal-dialog

当我单击两个按钮中的任何一个时,动作都不会触发,并且在js控制台中没有任何记录。

有人可以看到为什么吗? 我在犯一些愚蠢的错误吗?

1 个答案:

答案 0 :(得分:3)

根据您对文件路径的评论,路由不能具有可直接从模板调用的操作。

在不提取组件的情况下,您希望在控制器上为该路线定义操作。

  • 路线-数据访问-模型挂钩的值是传递给控制器​​的值。除了model
  • 之外,无法从模板访问路线中的任何内容
  • 控制器-支持模板,可以定义属性并可以访问模型
  • 该模板由控制器支持。

希望这会有所帮助! :)