0
我有按鈕頁面「確認NOW」,其中在點擊我得到它通過網絡保存一個JSON REST適配器。燼數據model.save不是一個函數
/accounts/[email protected]/verification
/accounts/{email}/verification
但我得到一個「model.save不是一個函數」的錯誤。
Uncaught TypeError: model.save is not a function
at Class.verifyEmail (index.js:19)
at Router.triggerEvent (ember.debug.js:28654)
at trigger (ember.debug.js:55917)
at Router.trigger (ember.debug.js:57517)
at Class.send (ember.debug.js:27844)
at Class.send (ember.debug.js:31852)
at ember.debug.js:11639
at Object.flaggedInstrument (ember.debug.js:18475)
at ember.debug.js:11638
at Backburner.run (ember.debug.js:717)
模板/帳號/顯示/驗證/ index.hbs:
<section class="main-content">
<div class="container-fluid" style="border:1.0rem solid #fff;">
<div class="row">
<div class="col-xs-12 col-sm-7 col-lg-6">
<form {{action "verifyEmail" on="submit"}}>
<div class="form-group">
<h2>Confirm your email now to complete the registration</h2>
</div>
<div class="mt10">
<button type="submit" class="btn btn-success">CONFIRM NOW</button>
</div>
</form>
</div>
</div>
<div class="row mt20">
<div class="col-xs-12 col-sm-7 col-lg-6">
You are receiving this email because ...
</div>
</div>
</div>
</section>
router.js:
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: config.locationType,
rootURL: config.routerRootURL
});
// page route
Router.map(function() {
this.route('accounts', function() {
// /accounts/new
this.route('new', function() {
//this.route('success');
});
this.route('show', { path: '/:account_id' }, function() {
// /accounts/1/confirmation
this.route('confirmation');
// /accounts/1/verification
this.route('verification', function() {
// /accounts/1/verification/success
this.route('success');
});
});
});
});
export default Router;
路線/帳號/顯示/驗證/ index.js:
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params) {
return this.store.createRecord('account-verification');
},
actions: {
/* account email verification */
verifyEmail() {
var model = this.get('model');
var self = this;
<<<<<PROBLEM HERE, "MODEL.SAVE IS NOT A FUCTION">>>>>
model.save().then(function(data) {
// handle success
// route user to success page
}).catch((adapterError) => {
console.log(adapterError);
});
}
}
});
型號/帳戶verification.js:
import DS from 'ember-data';
export default DS.Model.extend({
email: DS.attr('string'),
secretToken: DS.attr('string')
});
謝謝,我接受這個答案,它的工作原理移動到控制器。你能否也展示如何使verifyEmail()在Route上工作? –
嘗試此'變種控制器= this.controllerFor(this.routeName); VAR模型= controller.get( '模型')' – kumkanillam
或'VAR控制器= this.controllerFor( 'accounts.show.verification.index'); var model = controller.get('model')'@OhChinBoon讓我知道它是否不適合你。 – kumkanillam