Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 行动不是';t调用视图中的函数,从模板-Ember_Javascript_Ember.js - Fatal编程技术网

Javascript 行动不是';t调用视图中的函数,从模板-Ember

Javascript 行动不是';t调用视图中的函数,从模板-Ember,javascript,ember.js,Javascript,Ember.js,所以基本上我创建了一个这样的视图(我这样创建它,因为我需要它作为一个弹出窗口) 我有一个像这样的观点 Application.LoginOverlayView = Ember.View.extend({ templateName: 'view/loginOverlay', password: null, logBackIn: function (password) { console.log('logBackIn'); }, closeOverlay: function () {

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

我有一个像这样的观点

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>
但是没有快乐。此外,我还添加了init,以确保创建了它,并且调用了日志


另一个需要补充的是,当我点击按钮时,我没有得到任何反馈。我没有收到任何类型的错误或任何东西。

尝试在actions哈希中添加您的action handler方法-请看,我已经尝试过了,谢谢。我更新了我的问题
<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>
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()
    }
});