Ember.js:创建控制器子类时遇到问题

时间:2014-03-26 17:08:21

标签: javascript ember.js

我正在尝试在Ember.js中创建一个自定义控制器,并且在尝试使其工作时遇到了一些麻烦。这是我的app.js代码:

App = Ember.Application.create();

App.LoginController = Ember.Controller.extend({   
  actions: {
    alert: function() {
      alert('yo');
    }
  }
});

App.LoginManagerView = Ember.View.extend({
  templateName: 'login/manager',
})

App.LoginManagerController = Ember.Controller.extend({
  needs: ['loginController'],
})


App.Router.map(function() {
  this.route("root", {path: "/"});

  this.resource("login", function() {
    this.route("user");
    this.route("manager");
  })
});

这是我的HTML代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Ember Starter Kit</title>
  <link rel="stylesheet" href="css/normalize.css">
  <link rel="stylesheet" href="css/style.css">
</head>
<body>

  <script type="text/x-handlebars">
    <div class="navbar">
      <div class="navbar-inner">
        {{#link-to 'root'}}Home{{/link-to}}
        {{#link-to 'login.user'}}User{{/link-to}}
        {{#link-to 'login.manager'}}Manager{{/link-to}}
      </div>
    </div>
    {{outlet}}
  </script>

  <script type="text/x-handlebars" id="root">
    <h1>Home</h1>
  </script>

  <script type="text/x-handlebars" id="login/user">
    <h1>User</h1>
  </script>

  <script type="text/x-handlebars" id="login/manager">
    <h1>Manager</h1>
    <p>
      Name: {{controller}}
    </p>
    <button {{action controllers.loginController.alert}}>Alert</button>
  </script>

  <script src="js/libs/jquery-1.10.2.js"></script>
  <script src="js/libs/handlebars-1.1.2.js"></script>
  <script src="js/libs/ember-1.4.0.js"></script>
  <script src="js/app.js"></script>
</body>

当我点击User时,我可以看到用户视图,但是当我点击管理器时,我无法看到管理器视图。事实上,它似乎甚至没有创建经理路线。如果我删除这些行:

App.LoginManagerController = Ember.Controller.extend({
  needs: ['loginController'],
})

它可以工作,但我无法访问登录控制器实例。

编辑:

当我看到Ember控制台而我看不到路线时,如果我回到js控制台,我收到此消息:

  

需要[controller:loginController]但无法找到

如何让它找到loginController实例?

0 个答案:

没有答案