问题标签 [ember-old-router]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2903 浏览

ember.js - transitionTo('route', context) 传递上下文基础路由,而不是请求的路由

我正在开发一个 Ember 应用程序,我希望单击按钮以转换到新路由,将对象作为该路由的上下文传递。

问题是,无论我如何尝试传递该上下文,当我到达要转换的路线时,它总是会丢失。

调查(http://jsfiddle.net/fxbXM/2/)似乎上下文被传递到路由器命中的第一个路由,因为它适用于请求的路由。(请参阅每个路由级别的 connectOutlets 函数的输出)

这似乎证实了我在调试实际应用程序时的想法:在 Ember 的 triggerSetupContext 函数中有三个enterStates:[Router, 'root', 'create'] 并且有三个contexts:[myObject, null, null]

如果上下文的顺序相反,那么我会在我想要的地方得到我想要的!

我在将对象作为上下文传递的方式上是否犯了一些基本错误?我应该使用另一种方法吗?

0 投票
1 回答
2683 浏览

ember.js - 获取当前路线的上下文

我已经使用 ember 路由器在我的 ember 应用程序中实现了一个搜索字段。我的路由器的相关部分如下所示:

我想将我的搜索字段的值绑定到当前路线的上下文。我找到了一种在我的控制器中使用在我的控制器中实现的stateMetaFor方法来执行此操作的方法,如下所示:

我对这种方法不满意,因为 1)它使用了未记录的findStateByPath方法,以及 2)因为它需要 stateMeta 对象的内部知识。有一个更好的方法吗?如果没有,应该有吗?

0 投票
3 回答
8129 浏览

javascript - Ember-Data:“映射”如何工作

我目前正在尝试将一些东西与 ember + emberdata + router + asp.net web api 放在一起。大多数似乎都有效,但是当 ember-data 尝试findAll通过我的模型的适配器时,我遇到了一条错误消息。

在我的后端,我有一个这样的模型(C#):

在我的应用程序中,我使用 ember-data 像这样表示它:

我还在我的应用程序中使用 RESTAdapter 定义了一个商店,如下所示:

商店在我的控制器中使用如下:

路由器定义为

当我运行我的应用程序时,对于具有相同结构的每个对象,我都会收到以下消息:

未捕获的错误:断言失败:您的服务器返回密钥为 0 的哈希,但您没有映射

作为参考,这里是服务返回的 json:

我无法确切说出问题所在,并且由于断言提到我需要映射,所以我想知道:

  1. 这个映射什么以及如何使用它。
  2. 由于返回的 json 是一个数组,我应该在我的应用程序中使用不同类型的控制器,还是在 ember-data 中使用这种类型的 json 时我应该知道什么?还是应该更改服务器中的 JsonFormatter 选项?

欢迎任何帮助。

如果您觉得这不足以理解问题,我绝对可以添加更多信息。

编辑:我在后端更改了一些东西,现在我findAll()在服务器中的等效操作将输出序列化为以下 json:

但是我仍然无法让它在客户端中填充我的模型,并且我的错误消息已更改为:

未捕获的错误:断言失败:您的服务器返回了包含关键类型的哈希,但您没有映射

不知道我可能做错了什么。

抛出此异常的方法是sideload并检查如下映射:

此调用sideloadedType = type.typeForAssociation(prop);返回undefined,然后我收到错误消息。该方法检查返回空typeForAssociation()的 for键。'associationsByName'Ember.Map

目前仍然没有解决方案。

顺便一提...

我的动作现在是这样的:

我不得不删除由json.NET序列化的原始实现,因为我找不到配置选项来生成 Ember-Data 期望的 json 输出(如中所示{resource_name : [json, json,...]})。这样做的副作用是我失去了内置的 OData 支持,但我想保留它。有谁知道我如何配置它来为一个集合生成不同的 json?

0 投票
2 回答
441 浏览

ember.js - `insertNewline` 可以调用 transitionTo 吗?

我的问题的示例代码在这里。这是一个简单的 Ember 应用程序,默认显示包含 TextField 的 SearchView。

当用户输入一些文本并按 Enter 键时,我想通过在文本框中输入的值转换到另一个状态(displayUserProfile)。

起初,在 Textbox 的insertNewline回调中,我调用了应用程序路由器的transitionTo方法,将值作为参数对象的一部分传递:

这很好用,但后来我注意到 pangratz 对有关无限滚动的问题的回答使用了不同的方法。相反,他调用视图控制器上的一个方法,该控制器又调用控制器目标(即路由器)上的一个方法。

这将我的代码更改为:

我的问题是:哪种方法更好?直接从视图调用transitionTo或将其委托给视图的控制器?

0 投票
2 回答
757 浏览

ember.js - Ember.js 基于路由器的应用程序在页面刷新时未加载 ember-data 对象

我正在关注基于http://emberjs.com/guides/outlets/的基于路由器的应用程序结构。
我能够跟随并使其发挥作用。但是当页面显示帖子(例如/#/posts/2)时加载内容时出现问题,我怀疑这是因为未加载特定的帖子。

有什么出路?是不是应该开箱即用。

小提琴示例:http: //jsfiddle.net/nachiket/h5Hkm/

直接输出: http: //fiddle.jshell.net/nachiket/h5Hkm/show/light/
作品: http: //fiddle.jshell.net/nachiket/h5Hkm/show/light/#/posts
不起作用:http ://fiddle.jshell.net/nachiket/h5Hkm/show/light/#/posts/1

0 投票
1 回答
695 浏览

ember.js - 如何在 ember.js 中使用多个路由器对象

我还是 ember.js 的新手,但我尚未大规模看到的框架的一部分是基本的 Ember 路由器。在一个小型单页应用程序中,您只有一个管理所有状态/路由等的路由器。但是随着您的应用程序的增长,如果模式似乎只关注一个对象,您如何管理复杂性?

好奇这是否只是我忽略的东西,或者这是否被认为是一个巨大的全局状态管理对象,例如 iOS 中的 AppDelegate。

0 投票
2 回答
1365 浏览

ember.js - App.get('router').send 导致此错误 Uncaught TypeError: Cannot redefine property: __ember1346884664897

任何人都知道为什么我会收到此错误:

打电话时:

我从我的一个观点拨打电话,路由器处于正确的状态,据我所知,我正在按照书本做所有事情。

真的很感激任何想法......

创建了一个可能有助于更好地解释事情的要点。https://gist.github.com/3647288

0 投票
1 回答
341 浏览

javascript - EmberJS:将路由器拆分为多个文件

任何人都可以举一个很好的例子来说明如何将路由器分成多个文件,并且有没有这样做的最佳实践?

0 投票
2 回答
1483 浏览

ember.js - Emberjs 路由器:视图属性未在关联控制器上定义

我正在尝试将我的应用程序移至使用“插座”的新 Emberjs 路由器组件。

参见参考文献:http ://emberjs.com/guides/outlets/和这个: http ://codebrief.com/2012/07/anatomy-of-an-ember-dot-js-app-part-i-redux-路由和出口/

我如何理解它的工作原理:当您使用字符串连接插座时,会发生以下事情

  1. Ember 在 App 上查找视图定义并实例化它
  2. Ember 在 App 上查找控制器定义并创建它的实例
  3. 像这样将两者相互挂钩:设置视图控制器属性和设置控制器视图属性

--- 在最后一步之前运行良好。我似乎无法在控制器上设置视图属性。

JSBin 这里:http: //jsbin.com/ekekir/40/edit

相关代码:

应用路由器

控制器和视图

最后它返回一个大空值。

我做错了什么还是这就是它应该的方式?

顺便说一句:这是使用 ember-1.0.pre。

0 投票
2 回答
1023 浏览

ember.js - 我应该如何正确使用 Ember.js 嵌套路由?

我有这条路线部分,/articles/. 我想在这里创建子路由,比如//list/。这就是我正在尝试的方式:

我一定做错了什么,因为它没有过渡到文章路线。这是我的路由日志:

但是该articlesurl 没有注册到历史记录中——如果我点击返回,我会进入上一个状态,即之前的状态articles

我究竟做错了什么?