[英]Ember Handlebars helper options.inverse undefined is not a function
所以我有一個模板,我需要根據方法的返回值顯示/隱藏一些文本。 我搜索並注意到應該使用車把助手來實現這一目標。 所以我在控制器中添加了一個resetPassword
幫助器。 options.fn(this)
部分有效。 options.inverse(this)
沒有。 拋出無處不在的JS錯誤Uncaught TypeError: undefined is not a function
....
模板/復位password.hbs:
<div class = "container">
{{#resetPassword}}
<h4>Password has been reset</h4>
<h5>Your new password is: <b>{{password}}</b></h5>
{{else}}
<h4>Something went wrong! </h4>
<h5>The password has not been reset! Please try again later.</h5>
{{/resetPassword}}
</div>
控制器/復位password.js:
export default Ember.Controller.extend({
token: null,
init: function ()
{
this._super();
Ember.Handlebars.registerHelper('resetPassword', function (options)
{
var token = this.get('token');
var result = false;
/* Ember.$.ajax({
type: "POST",
url: "/reset_password",
contentType: "text/html",
dataType: "json",
async: false,
beforeSend: function (request)
{
request.setRequestHeader("Authorization", token);
},
success: function (data, textStatus)
{
this.set('password', data.password);
result = true;
},
error: function (data, textStatus)
{
result = false;
}
});*/
if (result)
{
return options.fn(this);
}
return options.inverse(this);
});
}
});
所以因為JS和Ember純粹是吮吸,這是一個解決方法:
{{#if resetPassword}}
<h4>Password has been reset</h4>
<h5>Your new password is: <b>{{password}}</b></h5>
{{else}}
<h4>Something went wrong! </h4>
<h5>The password has not been reset! Please try again later.</h5>
{{/if}}
和控制器動作:
resetPassword: function ()
{
var self = this;
var token = this.get('token');
var result = false;
Ember.$.ajax({
type: "POST",
url: "/api/users/reset_password",
contentType: "text/html",
dataType: "json",
async: false,
beforeSend: function (request)
{
request.setRequestHeader("Authorization", token);
},
success: function (data, textStatus)
{
var responseUser = data["users"][0];
self.set('password', responseUser.password);
result = true;
},
error: function (data, textStatus)
{
result = false;
}
});
return result;
}.property()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.