【问题标题】:Uncaught TypeError: undefined is not a function - ember js未捕获的类型错误:未定义不是函数 - ember js
【发布时间】:2015-04-08 13:21:07
【问题描述】:

这是我第一次尝试使用 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;

这是 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>

这是 app/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.

我做错了什么。请帮忙。

【问题讨论】:

    标签: javascript ember.js ember-cli


    【解决方案1】:

    这...

    var App = Ember.Application.create({
    

    ...应该是...

    var App = Ember.Application.extend({
    

    因此你应该摆脱undefined is not a function

    至于您的第二个问题,我认为是由您的第一个问题引起的。至少in a JsBin 可以正常工作。

    如果第一个问题解决后第二个问题仍然存在,请再次询问。 JsBin 中的一个工作示例会非常好。 :-)

    【讨论】:

    • 这有助于消除第一个错误。关于第二个,我不得不将控制器从 login_controller.js 重命名为 login.js,并相应地更新代码。谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-03-14
    • 2014-12-13
    • 2014-08-11
    相关资源
    最近更新 更多