gpt4 book ai didi

javascript - 根据 Controller 的结果处理 View 中的事物

转载 作者:行者123 更新时间:2023-11-28 20:22:09 24 4
gpt4 key购买 nike

我正在尝试创建一个非常简单的东西 - 登录。

这是我的模板:

        <script type="text/x-handlebars" data-template-name="login">
<div class="row well">
<form class="form-inline">
{{input value=email type="text" placeholder="Email?"}}
{{input value=password type="password" placeholder="Password?"}}

{{#view App.LoginView}}
<button id="login-button" type="submit" class="btn">Sign in</button>
{{/view}}
</form>

{{#if not_logged}}
<div class="alert alert-error">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<strong>Warning!</strong> Best check yo self, you're not looking too good.
</div>
{{/if}}
</div>
</script>

View :

App.LoginView = Ember.View.extend(
{
tagName: "span",

click: function()
{
this.$("#login-button").button("loading");
this.get("controller").send("do_login");
}
});

Controller :

App.LoginController = Ember.Controller.extend(
{
is_logged: true,

do_login: function()
{
/** some ajax comes here **/
}
});

因此,用户单击按钮,我将其状态更改为“正在加载”。问题是,如果登录失败,我如何向 View 发出信号,以便我可以执行此操作。$("#login-button").button("reset"); ?

最佳答案

类似这样的事情应该可以做到:

App.LoginController = Ember.Controller.extend({
is_logged: true,
loginFailed: false,

do_login: function() {
/** some ajax comes here **/
// if the login failed set the boolean
// this triggers the property binding
// which in turn executes your "reset" function in the view
this.set('loginFailed', true);
}
});

App.LoginView = Ember.View.extend({
tagName: "span",

click: function() {
this.$("#login-button").button("loading");
this.get("controller").send("do_login");
},

reset: function() {
if(this.get("controller.loginFailed")){
this.$("#login-button").button("reset");
}
}.observes('controller.loginFailed')
});

希望有帮助。

关于javascript - 根据 Controller 的结果处理 View 中的事物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18087580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com