dimanche 12 février 2017

ember-data model.save is not a function

i have a page with button "CONFIRM NOW" where upon clicking i am getting it to save across network with an JSON REST adapter.

/accounts/chinboon@http://ift.tt/2l5UOgD
/accounts/{email}/verification

But i am getting a "model.save is not a function" error.

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)

templates/accounts/show/verification/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 >
          <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;

routes/accounts/show/verification/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);
      });
    }
  }
});

models/account-verification.js:

import DS from 'ember-data';

export default DS.Model.extend({
  email: DS.attr('string'),
  secretToken: DS.attr('string')
});

Aucun commentaire:

Enregistrer un commentaire