Uncaught TypeError: undefined не является функцией - ember js

Это моя первая попытка с Ember JS. Я делаю простую форму для входа в систему. Я создал приложение, используя ember-cli. Короче говоря, вот что я добавил в скелетное приложение:

Это app.js

import Ember from 'ember';
import Resolver from 'ember/resolver'; 
import loadInitializers from 'ember/load-initializers';
import config from './config/environment';

Ember.MODEL_FACTORY_INJECTIONS = true;


var App = Ember.Application.create({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Resolver: Resolver
});

loadInitializers(App, config.modulePrefix);

export default App;

Это приложение / router.js

import Ember from 'ember';
 import config from './config/environment';

var Router = Ember.Router.extend({
 location: config.locationType
});

export default Router.map(function() {
this.route('login', {path: '/login'});
});

Это шаблон templates / login.hbs:

<form class="form-horizontal" {{action "login" bubbles=false}}>

<div class="control-group">
  <div class="control-label">
  <label>Username</label>
</div>
  <div class="controls">
  {{input value=username type="text"}}
  </div>
</div>

 <div class="control-group">
  <div class="control-label">
  <label>Password</label>
</div>

<div class="controls">
  {{input value=password type="password"}}
 </div>
</div>

<button type="submit" class="btn" >Log in!</button>
</form>

Это приложение / controllers / login_controller.js

import Ember from 'ember';

var LoginController = Ember.Controller.extend({
 loginFailed: false,
 isProcessing: false,
  actions: {
   login: function() {
    this.setProperties({
    loginFailed: false,
    isProcessing: true
    }); 

  }
 }

});


export default LoginController;

Это дает эту ошибку в консоли:

Uncaught TypeError: undefined is not a functionapp-boot.js:25 (anonymous function)

Если я дам имя пользователя и пароль и нажму на "Войти"! это дает эту ошибку:

Uncaught Error: Nothing handled the action 'login'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.

Что я делаю неправильно. Пожалуйста, помогите.

1 ответ

Решение

Это...

var App = Ember.Application.create({

... скорее должно быть...

var App = Ember.Application.extend({

Таким образом, вы должны избавиться от undefined is not a function,

Что касается вашей второй проблемы, я думаю, что она вызвана вашей первой проблемой. По крайней мере, в JsBin все работает нормально.

Если вторая проблема все еще существует после того, как первая была решена, просто спросите снова. Рабочий пример в JsBin был бы очень хорош.:-)

Другие вопросы по тегам