javascript - Ember.js 路由,无法访问 Controller

标签 javascript ember.js url-routing

我已经启动了小型 ember 应用程序,我有以下观点:

Cellar.SearchTextField = Ember.TextField.extend({
    insertNewline: function(){
      Cellar.SearchController.loadResults();
    }
});

和 Controller :

Cellar.SearchController = Ember.ArrayController.create({
  content: [],
  searchQuery: "",
  loadResults: function() {
    var me = this;
    SC.get('/tracks', { q: me.get('searchQuery') }, function(tracks) {
      me.set('content', []);
      $(tracks).each(function(index, value){
        var track = Cellar.Track.create({
          id: value.id,
          artwork: value.artwork_url,
          download_url: value.download_url,
          duration: value.duration,
          stream_url: value.stream_url
        })
        me.pushObject(track);
      });
    });
  }
});

和应用程序模板:

<div class="navbar navbar-inverse navbar-fixed-top">
  <div class="navbar-inner">
    <div class="container"></div>
      <h3 class="logo">{{#linkTo "index"}}Cellar{{/linkTo}}</h3>

      <form class="navbar-search">
        {{view Cellar.SearchTextField placeholder="search" valueBinding="Cellar.SearchController.searchQuery"}}
      </form>

    </div>
  </div>
</div>
<div id="content">
{{outlet}}
</div>

我的问题是,当我在路线 http://localhost:3000/ 上时,我的 searchController 不起作用,但当 URL 为 时一切正常>http://localhost:3000/#/,为什么?

最佳答案

Ember 默认使用基于哈希的路由。您可以通过重新打开路由器并切换到 HTML5 位置 api 来更改它。

App.Router.reopen({
  location: 'history'
});

编辑:我认为这里存在版本不匹配的问题。这似乎是 ember 的旧版本。

在当前版本中,您无需手动创建 Controller 。您提供一个 Controller 并扩展ArrayControllerObjectController

您将不再拥有对 App.SearchController 的引用。您可以通过 {{action}} 帮助程序发送事件或调用 Controller 上的方法。

有很多差异,我建议给 Ember Getting Started Guide快速阅读以了解更改。

关于javascript - Ember.js 路由,无法访问 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17367619/

相关文章:

ember.js - Ember : Conditional redirect in router

Ember.js 在不锁定浏览器的情况下渲染大型列表

python - 如何在 Flask 应用程序中创建动态子域

google-app-engine - 使用 dispatch.yaml 进行 Google App Engine 路由

azure - 使用什么来路由 Azure 中的数千个子域?

javascript - 为什么 "1 << 32"在 Javascript 中等于 1

javascript - NewtonSoft JSON 转换器序列化但执行起来很奇怪。怎么修?

javascript - WebSQL 事务不会在 JS 回调函数中运行

javascript - 为什么我的代码中 val() 返回的值为空?

javascript - Ember JS : undefined is not function on helper when content changed