问题标签 [ember-cli-addons]

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 回答
408 浏览

javascript - Promise 中处理上下文的正确方法

关于这个主题有几篇文章,但找不到一篇解释 Promises 中上下文概念的文章。让我们从一些代码开始(这取自 Ember.js 模块并进行了简化,但可以是任何支持 Promise 的 JS 代码):

现在,我的问题如下:

  1. 请参阅上面 prepareForProcessing 函数中的注释。当从 promise 的“then”方法调用时,“this”变量在方法内部指的是什么?如果我转储“this”对象,它似乎指的是某个全局节点/ember cli 对象而不是这个模块。
  2. 如何在方法中检索/访问上述属性?一种明显的方法是将选项作为参数传递,但不确定这是否是正确的方法。如果您查看此处的代码(第 34 行),则每个“then”调用都会传递选项。但是,这是否不违反 OOP 的具有可重用的类/实例级变量的原则?我对 JS 比较陌生,完全不了解基于“对象”的模型,所以如果这听起来像一个愚蠢的问题,请原谅我。

我将不胜感激任何帮助和指导。非常感谢你。

0 投票
1 回答
1062 浏览

ember.js - Ember插件将文件添加到根目录

我有一个插件,它需要将一组 JS 文件从他们的 bower 目录复制到 Ember 应用程序的根目录/dist(这是用于与服务工作者相关的范围规则)。我想也许我可以使用treeForApp钩子,但是虽然我没有收到错误,但我也没有得到想要的结果。

index.js


注意:我认为我可以通过简单地复制 javascript 文件作为index.js postBuild钩子的一部分来解决这个问题,但是虽然这确实将 JS 文件放入 dist 文件夹的根目录,但ember serve如果没有通过一个推送,ember-cli 显然不会提供服务它的构建管道。

Stefan Penner 现在指出该dist目录是供开发人员查看的,但服务实际上是在tmp目录结构中完成的……这解释了为什么我的“hack”不起作用。

0 投票
2 回答
942 浏览

ember.js - Ember PODS 结构和 Ember 引擎

在与 Ember 引擎集成时,使用 Ember PODS 结构会导致任何问题吗?

推荐的结构是什么;PODS还是传统结构?

0 投票
1 回答
169 浏览

javascript - Ember CLI/Ember.js 中的 Promise

我正在尝试编写一个 ember-cli-deploy 插件,并且确实可以在承诺方面使用一些帮助。在主插件的 index.js 中,我有以下代码 index.js:

上述工作按预期工作,并且承诺得到正确解决。

如果我将上面的代码更改为:

代码失败。然后,我尝试了以下方法,但也失败了:

在上述两种情况下,它都会抱怨 createDeployment 方法中未定义的变量/属性,定义如下:

在上述两种情况下我做错了什么?

0 投票
1 回答
61 浏览

ember.js - 直接从开箱即用的测试中导入 ember 插件代码

我正在创建一个 ember 插件,但我在尝试为它编写测试时有点卡住了。这个插件实现了一个命令行选项,而不是运送组件等。因此,在开箱即用的 qunit 测试中,没有一个 moduleFor 类型测试助手与我相关。我没有渲染任何组件,我只是想要一个测试运行器来执行我的命令行选项后面的实现。

要编写我的测试,我只需要我的插件中的各种源文件。例如,位于 root/lib 中的文件。我无法获得可以在 root/tests/integration 下的 qunit 集成测试中找到这些文件的 require/import。这可能吗?我需要一个相对路径,例如:

但那里似乎没有任何效果。为插件创建的文件夹结构如下:

    • 应用程序
    • lib(计划将我的插件 impl 放在这里)
    • 测试
      • 帮手
      • 一体化
      • example-test.js(尝试从此处引用 lib 文件夹中的代码)

在这种情况下,我的选择似乎只是退回到基于插件根目录的一些普通的旧 JS 单元测试(qunit、jasmine 等),而不使用任何 ember 魔法或虚拟应用程序。我想留在 ember generate 插件提供的“开箱即用”路径上,但似乎我需要在这里走自己的路,所以我可以参考我的源文件。

0 投票
2 回答
303 浏览

ember.js - Polymer 是否有受支持的 Ember-cli 插件?

我对 ember-cli 和聚合物都很陌生,所以请耐心等待。

我的问题是我正在尝试在我的 ember-cli 项目中使用 Polymer webcomponents,但是我无法找到适用于当前版本的 ember、ember-cli 和聚合物的附加组件或解决方案。有(都是最新版本)。

我已经在 npm 上为 emebr-cli 尝试了 ember-polymer、ember-cli-polymer 和 ember-cli-polymer-toolchain 插件,但都没有奏效。下面是我包含在我的 brocfile.js 中的代码,我已经检查过我是否安装了硫化和合并所需文件所需的正确依赖项。

是否有 ember 团队支持的官方插件,或者根本没有支持的方式来实现这一点。不能在我的项目中包含聚合物的 web 组件将是一种耻辱。

在此先感谢您的帮助。

0 投票
0 回答
121 浏览

javascript - 无法设计像 fb 这样的响应式模态对话框

我已经使用 ember-modal-dialog 插件来使用对话框。我想复制 fb 正在使用的确切模式对话框。但我无法让它工作。我该如何实现这一点。

应用程序.scss

模态的.hbs

我无法将整个图像放入容器中,其大小应该根据图像而变化。现在我正在做溢出:隐藏。我正在尝试实现 facebook 的做法。但我无法修复它。

0 投票
1 回答
153 浏览

ember.js - Ember 插件和 bower 依赖项版本控制

(相关,非常相似,但与这个问题不同,因为我的问题是寻找 node_modules 丢失并重新获取的场景,以及npm install保持 deps 最新的主题。)

让 A 成为版本 a1 中的插件,让 B 成为版本 b1 中该插件的凉亭依赖项。插件通过默认蓝图安装其 bower 包,例如

现在让 C 成为使用 A 的应用程序。当 A 安装时使用ember install A

bower 包实际上是安装在 C 中的。到这里为止,一切都很好。现在A更新到a2版本,包括b2版本中的B。在 C 中,

(如果 bower.json 是旧的,检查没有 node_modules 的 C 并运行 npm install 会遇到类似的问题)将获取 A.a2。

  • A.a2 的默认蓝图是否应该运行并导致 C 也安装 B.b2?(这是这里提出的实际问题)

如果蓝图是手动运行的,B.b2 实际上会得到提示,也就是说,您会看到项目现在有凉亭冲突,并被询问如何解决它。

我现在试了一下,不行。如果我为 npm ( ember g testaddon) 指定安装后脚本,它也不起作用(因为 npm 尝试以不同的顺序安装软件包,并且在安装后脚本运行时未安装 ember-cli)。

如果必须手动检查蓝图,那么让蓝图传播凉亭依赖关系有什么好处我理解错了吗?这是预期的行为吗?

0 投票
2 回答
154 浏览

ember.js - EmberCLI - 在页面生命周期的早期根据请求确定环境

我有一个 EmberCLI 应用程序,其中 Staging 和 Prod 都位于同一个 S3 存储桶上,并且在 config/environment.js 中的环境变量是相同的。我仍然需要能够为两个“环境”指定不同的设置。

判断哪个应用程序正在运行的可靠方法是检查请求的域,但我无法及时拦截以更新我的设置。

我已经尝试创建一个初始化程序来检查域并相应地更新 ENV 对象,但在页面生命周期中似乎为时已晚,无法产生任何效果;该页面已经呈现,我的插件没有看到它们的正确设置。

对于一个插件,我基本上必须将其所有代码复制到我的项目中,然后编辑 index.js 文件以使用基于我的域的正确键,但这很笨拙。有一个更好的方法吗?我是否正在尝试制作一个不明智的建筑作品?

来自那些更精通 Ember 的任何建议将不胜感激。

0 投票
1 回答
619 浏览

javascript - 在 ember simple auth 中将数据保存在浏览器的本地存储中

我已经使用 ember-simple-auth 进行 fb 登录。我能够获取 fb 的 access_token 并将令牌发送到我的服务器以交换服务器令牌。这工作正常,并且我能够过渡到用户提要页面。但是我面临的问题是第一次用户。在将他们带到他们的提要屏幕之前,我必须向他们展示一些入职屏幕。从下次开始,我可以跳过他们的入职过程。

torii.js

我从我的服务器得到的响应是这样的。

对于第一次用户。

当 Signup_done 为假时,我必须向用户显示入职屏幕并向服务器“ http://example.co.in/api/post/signupdone ”发出 POST 请求

对于普通用户

这次我必须将用户移动到他们的提要屏幕,跳过入职屏幕。

我想将 singup_done 从服务器保存到我的 cookie 或浏览器本地存储(不确定)。这样我就可以在我的车把、控制器、模型、组件中使用这个值。我也愿意接受其他建议来用简单的方法实现这一点.请使用代码示例。提前致谢。