动作不是从模板 - Ember调用视图上的函数

时间:2014-04-10 11:11:58

标签: javascript ember.js

所以基本上我创建了一个这样的视图(我创建它就像我需要它作为弹出窗口一样)

    Application.container = Ember.ContainerView.create();
    Application.container.append();

    Application.loginOverlay = Application.LoginOverlayView.create({
    });
    Application.childViews = Application.container.get('childViews');
    Application.childViews.pushObject(Application.loginOverlay);

我有一个看起来像这样的视图

Application.LoginOverlayView = Ember.View.extend({
templateName: 'view/loginOverlay',
password: null,
logBackIn: function (password) {
    console.log('logBackIn');
},
closeOverlay: function () {
    console.log('closeOverlay');
},
username: function () {
    return Application.user.get('username');
}.property().volatile()
});

这是我的模板

<div id="login-overlay" class="overlay">
    <section>
      <form id="login_form">
            <div class="control-group">
                <label class="control-label" for="username">{{localise _username}}: {{username}}</label>
            </div>
            <div class="control-group">
                <label class="control-label" for="reenter-password">{{localise _password}}</label>
                <div class="controls">
                    {{view Ember.TextField name="reenter-password" elementId="reenter-password" valueBinding="password" placeholder="password" type="password"}}
                </div>
            </div>
            <div class="control-group">
                <input type="button" value="{{localise _login}}" class="btn btn-success" {{action 'logBackIn' password target="view"}} {{bindAttr disabled=busy}} />
                <input type="button" value="{{localise _cancel}}" class="btn btn-danger" {{action 'closeOverlay' target="view"}} {{bindAttr disabled=busy}} />
            </div>
        </form>
    </section>
</div>

点击时,视图上的操作正在执行任何操作。

我正在使用Ember的旧版本 - v1.0.0-rc.7-9-g7398406

有什么想法吗?

*的 修改 *

我确实尝试过像这样的动作哈希

Application.LoginOverlayView = Ember.View.extend({
    // layoutName: 'view/loginOverlay',
    templateName: 'view/loginOverlay',
    password: null,
    init: function () {
        console.log('LoginOverlayView');
        this._super();
    },
    actions: {
        logBackIn: function (password) {
            console.log('logBackIn');
        },
        closeOverlay: function () {
            console.log('closeOverlay');
            Application.removePasswordOverlay();
        },
        username: function () {
            console.log('username');
            return Application.user.get('username');
        }.property().volatile()
    }
});

但没有快乐。我还添加了init以确保它正在被创建,而且,正在调用日志

要添加的另一件事是,当我点击按钮时,我没有得到任何反馈。我没有收到任何错误或其他任何错误。

0 个答案:

没有答案