问题标签 [ember.js-2]

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 投票
5 回答
8289 浏览

ember.js - 如何在 ember 2.0 组件中创建动态类名?

例如:Ember 组件允许您添加一个 classNames 数组,这些类将被添加到组件的主 div 中。假设我们有这个名为new-div 的组件

那么如果你在渲染时检查这个组件,你会看到:

这很好,但我的问题是,如果我有时想将此组件用作流体容器,有时我可能想让它成为 jumbotron 等。

有没有办法在 html 中执行此操作并让 component.js 正确应用它?

然后在component.js中:

0 投票
1 回答
298 浏览

ember.js - Ember 2.0 的 transitionTo 替代品,因为它已被弃用

所以我正在尝试制作一个名为“fsol-app-btn”的组件,它一个 A 标签链接。我做的第一件事是更改 component.js 中的 tagName 所以它在页面上正确呈现为 A 标记。

这是component.js:

这是组件的 template.hbs:

现在它在 html 中:

icon, title, color, 和num所有的工作,只是为了造型,所以这个组件可以用于我想要的任何类型的按钮。

但是该按钮的主要功能是单击并执行某些操作,在这种情况下,我希望它转到一条路线,例如link-to助手会。我尝试通过 aroute='name of route'然后mouseDown随叫随到this.transtionTo(this.get('route'))

但是我收到了一个已弃用的警告,但它不起作用。

那么我该怎么做呢?顺便说一句:我也尝试过this.sendAction(),在这种情况下,我定义了一个名为“点击”的操作,如下所示:

但后来我得到一个错误,说我的 fsol-app-btn 的父组件没有操作处理程序:clicked

我试着在我认为会抓住行动的地方到处走路线,但无济于事。

有任何想法吗?

0 投票
1 回答
904 浏览

javascript - Ember js 2.0 将计算属性从控制器传递到组件

我正在使用 Ember 2.3。

就像标题说的那样,我试图将一个计算属性从我的控制器传递给我的组件。我不知道我做错了什么,但它对我不起作用。这就是我正在做的事情:

在我的控制器中:

我的组件:

在我的模板中:

我看到的是我myProperty的 inmy-component总是设置为{}. 它永远不会得到我在模板中提交的值。注意我还尝试在我的控制器上将属性定义为字符串文字并将其提交,但它也无法识别。另外值得注意的是,我最初确实尝试在我的路由中定义计算属性,但我发现我可以访问它的唯一方法是它是在模型钩子本身中定义的,例如:

但这对我不起作用,因为我需要来自控制器的值,而这些值在调用模型钩子时不可用。

我不知道我在这里做错了什么。我敢肯定这很简单,但我的想法已经不多了。谁能告诉我我在这里做错了什么?以任何方式将计算属性从控制器传递到组件是不好的做法吗?任何意见,将不胜感激。非常感谢!

0 投票
4 回答
6121 浏览

javascript - 如何从 Ember 应用程序模板中的路由访问数据?

我正在关注 Ember 2.3 的文档,似乎找不到任何非常基本的东西:如何访问主模板中路由模型钩子提供的值:application.hbs

路线/client.js

模板/应用程序.hbs

就像现在一样,导航对象可以被路由的模板 ( client.hbs) 访问,但不能被应用程序模板访问。

0 投票
0 回答
241 浏览

javascript - 设置嵌套属性值,如果不存在则创建父级

所以我使用的是 Ember JS 2.2,我有一个普通的 JS 对象,想设置一个嵌套属性的值。但是我不知道某些父属性是否已经存在。如果它们不存在,我想将它们创建为一个空对象。基本上我想这样做:

它看起来像:

我知道我可以手动检查每个级别并在它不存在时分配它,但我希望 Ember 有一些可以做到这一点的东西。我以为我读到在 Ember 中有一种现有的方法可以做到这一点,但似乎无法在文档中找到它。谁能告诉我我是否遗漏了什么,或者我只需要编写自己的实现吗?任何建议表示赞赏。谢谢!

0 投票
1 回答
516 浏览

ember.js - 在 ember.js 中为“站点标题”使用组件与部分

这更像是一个设计/最佳实践问题,在Ember 2.x

我正在构建一个新的 ember Web 应用程序,对于站点的标题,我创建了一个单独的组件,site-header并将其包含在 application.hbs 中,如下所示。

应用程序.hbs

我试图找出,如果使用部分而不是组件可能是更好的选择,原因如下:

该组件,site-header...

  • 仅用于application.hbs
  • 不保持任何状态
  • 与它没有actions关联(只是一些更改的链接route)。
0 投票
4 回答
1858 浏览

ember.js - 如何将多个参数传递给 Ember2.3 中选择元素的 onChange 操作

我在循环中有一个select元素,我想要触发的动作需要有两个参数:select元素的 selected 选项和我们正在循环的项目。我的代码如下所示:

而我的火这个动作是这样的:

因此,在我的特定情况下,子项的数量是动态的,我需要将选定的子项与它当前所在的循环项一起使用。

除非重构为组件(现在,我不能这样做),我如何将多个参数传递给在“onChange”上触发的操作?

我努力了:

对于上述所有情况,我在函数中的两个参数都未定义(或导致另一个错误)。唯一有效的是:

但这只会给我 subItem,而不是 loopItem。

不幸的是,loopItems 是新创建的 Ember 对象,没有任何 ID 参数,所以我也不能给每个选择元素一个唯一的 ID。传递多个参数的能力几乎可以解决我的整个问题。

0 投票
2 回答
290 浏览

ember.js - 如何在 Ember 2.3 中获得等效的 BeforeObserver?

在此之前,我必须澄清一下,在过渡到 Ember 2.3 的过渡期间,我正在使用 legacy-controller 和 legacy-view,可在此处找到:

https://github.com/emberjs/ember-legacy-controllers

现在,我的(旧版)控制器上有一个名为 currentTopPost 的属性。

在 Ember 1.7 中,我有这样的设置:

我这样做的原因是,当currentTopPost更改时,我希望它在将其值切换到新属性之前保存旧的topPost ,因为它是一个 Post 对象(我有一个 Post 模型)。

当然,在 1.7 中,我将旧帖子保存在 beforeObserver 中,然后在观察者中执行我必须做的任何其他事情。现在,在 Ember 2.3 中,我进行了以下设置:

就执行具有新值的功能而言,它可以正常工作。但是我已经失去了在值改变之前处理动作的能力。现在根据对这个问题的回答:

观察者如何找出 Ember.js 中被观察属性的前后值?

observesBefore函数已被弃用,我们应该遵循以下原则

但是,在尝试使用 this.get("_oldCurrentTopPost") 时,我什么也没得到。如何在此属性更改之前访问它的旧值?

0 投票
1 回答
110 浏览

ember.js - 是否可以限制加载模型直到某些条件?

我有模型称为帖子。和称为帖子列表的组件

应用程序/模板/组件/posts-list.hbs:

主模板:

应用程序/路线/posts.js:

问题描述:无论用户是否授权,这些帖子都可以加载,但是当用户授权时,标题会有所不同(数据来自使用 JWT 的服务器)。

我将 ember-simple-auth 与自定义授权器和验证器一起使用。身份验证过程看起来像 - 用户单击链接并转到后端,然后使用令牌作为 GET 参数重定向回主页。我在 app/routes/application.js 中覆盖了 setupController 并调用

在身份验证器中,我具有以下功能:

所以我试图让当前用户使用令牌,如果成功,则用户被授权。

除了一件事,一切都很好。在请求当前用户之前请求帖子,因此即使用户实际授权他也会看到未经授权的内容。是否可以告诉 Ember 加载顺序(或在身份验证后重新加载数据,但这会产生第二个不受欢迎的请求)。

0 投票
1 回答
68 浏览

ember-cli - pod 文件的结构是 ember 2.x 应用程序的方式吗?

与使用 2.x 版本在 ember 项目中组织文件的传统方式相比,是否推荐使用pod结构?