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}}

問題は、モーダル ダイアログのボタンをクリックすると、「action createJob」が見つからないというメッセージが表示されることです。createJob を基本 Modal クラスに配置すると機能するため、オブジェクトを正しく拡張していませんか。

修理済み

私のコードのどこかに問題がありました。名前がコピーされたため、再定義してメソッドを存在させていませんでした。

4

0 に答える 0