我的应用程序中有一个问题,其中2个验收测试似乎发生冲突.如果我运行测试,则2个测试中的一个将失败.下次我运行它时另一个会失败等等.如果一个接一个地运行它们永远不会失败
第一个测试是测试访问URL将根据模型是否在其toMany-relationship(异步)中有任何记录而重定向到正确的路径.此测试失败并显示:错误:断言失败:无法在未定义的对象上使用'currentPath'调用get.
第二个测试是检查toMany关系是否在无序列表中呈现的测试.此测试失败,因为list-item的内容为空.
这些是我的测试:
test('visiting /categories/#', function() {
visit('/categories/1');
andThen(function() {
equal(currentPath(), 'categories.category.subcategories.index');
});
});
test('renders products', function () {
visit('/categories/2/products');
andThen(function () {
var list = find('#product-list li');
equal(list.length, 2);
var first = find('#product-list li').eq(0);
equal(first.text(), 'A4');
var last = find('#product-list li').eq(1);
equal(last.text(), 'A3');
});
});
Run Code Online (Sandbox Code Playgroud)
更新:
升级到最新的ember-cli 0.0.43现在第一次测试失败已经消失了(npm install --save-dev ember-cli),但是第二次测试仍然每隔一次运行测试失败.
我已经生成了一个'home'路线,我想将我的基本网址'/'更改为'home'我尝试将这行代码添加到router.js
App.Router.reopen({
rootURL: '/blog/'
});
Run Code Online (Sandbox Code Playgroud)
我也尝试将config/environment.js中的base-url设置为'/ home /'
其他人在浏览器控制台中收到此警告?页面首次加载时始终位于第一行.
Uncaught SyntaxError: Unexpected token < ember-cli-live-reload.js:1
Run Code Online (Sandbox Code Playgroud)
我的堆栈:
DEBUG: -------------------------------
ember.js:3935 DEBUG: Ember : 1.9.1
ember.js:3935 DEBUG: Ember Data : 1.0.0-beta.14.1
ember.js:3935 DEBUG: Handlebars : 2.0.0
ember.js:3935 DEBUG: jQuery : 1.11.2
ember.js:3935 DEBUG: Ember Simple Auth : 0.7.2
ember.js:3935 DEBUG: Ember Simple Auth Testing : 0.7.2
ember.js:3935 DEBUG: -------------------------------
Run Code Online (Sandbox Code Playgroud) 我试图在本地设置这个存储库https://github.com/lrdiv/ember-soundcloud,我用broccoli-emblem-compiler遇到了这个问题.见附件中的图片
根据我的理解,西兰花 - 会徽 - 编译器无法编译我的会徽模板,我不知道我怎么能搞清楚.
这些是我用Ember-Cli安装和设置项目所做的所有步骤
ember new soundcloud
ember install:addon ember-cli-coffeescript
ember install:npm broccoli-emblem-compiler
Run Code Online (Sandbox Code Playgroud)
我删除了app文件夹并替换为我克隆的项目https://github.com/lrdiv/ember-soundcloud
然后我安装了所需的其他节点模块
ember install:npm broccoli-static-compiler
ember install:npm broccoli-merge-trees
ember install:npm install body-parser
Run Code Online (Sandbox Code Playgroud)
最后我跑了
ember server ,在我的终端,我得到了我附加的错误.
我现在能做些什么来解决这个问题?真正的问题是什么?
有人可以一步一步地分享如何在openshift上部署和运行生产ember-cli应用程序?
我不确定这个过程和openshift cli步骤.
在本地我使用ember serve但是我不确定它在openshift中运行时该怎么做.
我的rails应用程序和index.html文件托管在heroku上,其余的资产都在s3上,有一个manifest.json文件是为了在Android上为chrome启用移动web应用程序模式,如下所示:
{
"short_name": "Kinlan's Amaze App",
"name": "Kinlan's Amazing Application ++",
"icons": [
{
"src": "launcher-icon-2x.png",
"sizes": "96x96",
"type": "image/png"
},
{
"src": "launcher-icon-3x.png",
"sizes": "144x144",
"type": "image/png"
},
{
"src": "launcher-icon-4x.png",
"sizes": "192x192",
"type": "image/png"
}
],
"start_url": "/index.html",
"display": "standalone",
"orientation": "landscape"
}
Run Code Online (Sandbox Code Playgroud)
在我,brocfile.js我已将json扩展名包含在fingerprintable文件列表中.
实际文件得到指纹识别,但内容如"src": "launcher-icon-3x.png"不.
无论如何要做到这一点,还是我需要制作一个in-Repo插件来处理文件的创建?
我正在尝试创建一个用户管理器,我可以创建编辑和删除用户,在删除操作中,我想显示一个带有"继续"和"取消"按钮的模态确认对话框,以确认用户的抑制.
最好的做法是什么,我使用的是ember-cli 0.2.3,网上有很多建议,我对这些解决方案有点困惑,创建模态的标准或最佳方法是什么Ember-CLI?
使用ember-cli@0.2.7和emberjs@1.13.2.
来源emberjs模型
export default DS.Model.extend({
name: DS.attr('string'),
displayName : Ember.computed('name', () => {
return this.get('name');
})
});
Run Code Online (Sandbox Code Playgroud)
翻译模型
'use strict';
var _this = undefined;
exports['default'] = DS['default'].Model.extend({
name: DS['default'].attr('string'),
displayName: Ember.computed('name', function () {
return _this.get('name'); //at this point _this is undefined
})
});
Run Code Online (Sandbox Code Playgroud)
麻烦的是_this永远不会设置模型.为什么会这样?
我有一个插件,需要将一组JS文件从其凉亭目录复制到Ember应用程序的根目录/dist(这是与服务工作者相关的范围规则).我想也许我可以使用treeForApp钩子,但是当我没有错误时,我也没有得到理想的结果.
该index.js方法是:
const Funnel = require('broccoli-funnel');
module.exports = {
name: 'ember-upup',
treeForApp: function(tree) {
tree = new Funnel(tree, { include:
[
'bower_components/upup/dist/upup.min.js',
'bower_components/upup/dist/upup.sw.min.js'
]});
return this._super.treeForApp.call(this, tree);
},
Run Code Online (Sandbox Code Playgroud)
注意:我想我可以通过简单地将javascript文件作为
index.jspostBuild钩子的一部分来复制来解决这个问题,但是当这个DOES将JS文件放入dist文件夹的根目录时,ember serve如果没有通过一个文件夹,它就不会被ember-cli服务它的构建管道.Stefan Penner现在已经指出该
dist目录供开发人员查看,但服务实际上是在tmp目录结构中完成的...这解释了为什么我的"hack"无效.
来自http://ember-cli.com/user-guide/:
您的ember-cli-build.js文件中的应用程序配置将存储在dist/index.html中的特殊元标记内.
示例元标记:
Run Code Online (Sandbox Code Playgroud)<meta name="user/config/environment" content="%7B%22modulePre.your.config">这个元标记是您的ember应用程序正常运行所必需的.如果您希望将此标记作为已编译的javascript文件的一部分,则可以使用ember-cli-build.js中的storeConfigInMeta标志.
Run Code Online (Sandbox Code Playgroud)// ember-cli-build.js var app = new EmberApp({ storeConfigInMeta: false });
在生产中,这个元标记看起来像
<meta name="app/config/environment" content="%7B%22modulePrefix%22%3A%app%22%2C%22environment%22%3A%22production%22%2C%22baseURL%22%3A%22/%22%2C%22locationType%22...
Run Code Online (Sandbox Code Playgroud)
而且很长.将配置对象作为Javascript资产的一部分,而不是要求应用程序在启动后解析所有文本,这不是更高效吗?
ember-cli ×10
ember.js ×9
babeljs ×1
broccolijs ×1
ember-data ×1
emblem.js ×1
jquery ×1
node.js ×1
openshift ×1
performance ×1
qunit ×1