1

我正在尝试创建一个模态视图并拥有一个所有模态都需要的基类,然后将其扩展为更具体的功能。

    PlanSource.Modal = Ember.View.extend({
        isShowing: false,
        hide: function() {
            this.set("isShowing", false);
        },
        close: function() {
            this.set("isShowing", false);
        },
        show: function() {
            this.set("isShowing", true);
        }
    });
    PlanSource.AddJobModal = PlanSource.Modal.extend({
        templateName: "modals/add_job",
        createJob: function() {
            var container = $("#new-job-name"),
                name = container.val();
            if (!name || name == "") return;
            var job = PlanSource.Job.createRecord({
                "name": name
            });
            job.save();
            container.val("");
            this.send("hide");
        }
    });

我用

{{view PlanSource.AddJobModal}}

并拥有视图模板

<a class="button button-green" {{action show target=view}}>+ Add Job</a>
{{#if view.isShowing}}
<div class="modal-wrapper">
    <div class="overlay"></div>
    <div class="dialog box box-border">
        <div class="header">
            <p class="title">Enter a job name.</p>
        </div>
        <div class="body">
            <p>Enter a name for your new job.</p>
            <input type="text" id="new-job-name" placeholder="Job name">
        </div>
        <div class="footer">
            <div class="buttons">
                <a class="button button-blue" {{action createJob target=view}} >Create</a>
                <a class="button" {{action close target=view}}>No</a>
            </div>
        </div>
    </div>
</div>
{{/if}}

问题是当我单击模态对话框上的按钮时,它给了我一个“找不到动作 createJob”。我是否错误地扩展了对象,因为如果我将 createJob 放在基 Modal 类中它可以工作。

固定的

我的代码中的其他地方存在问题。该名称被复制,因此它正在重新定义它并使该方法不存在。

4

0 回答 0