谁知道这个错误意味着什么?最重要的是:如何解决?
Cannot find module 'broccoli-static-compiler'Error: Cannot find module 'broccoli-static-compiler'
这是在安装ember-cli新项目并尝试运行之后发生的 ember server
我需要将一个用ember-cli制作的ember应用程序嵌入到现有的网站中.
如果没有ember-cli,我会这样做:
App = Ember.Application.create({
rootElement: '#app-container'
});
Run Code Online (Sandbox Code Playgroud)
我基本上希望将生成的资源包含到我的页面中,而不是使用index.html文件..(应用程序需要绑定到div而不是body元素..)
试图为ember-cli应用程序设置后端.以下是Ember模型的样子:
post.js
export default DS.Model.extend({
heading: DS.attr('string'),
content: DS.attr(''),
imageUrl: DS.attr('string'),
pageId: DS.belongsTo('page'),
tagIds: DS.hasMany('tag')
});
Run Code Online (Sandbox Code Playgroud)
tag.js
export default DS.Model.extend({
name: DS.attr('string'),
postIds: DS.hasMany('post')
});
Run Code Online (Sandbox Code Playgroud)
Rails和Active Record中的模型只是Post,Tag和Theme.主题加入帖子和标签.(即:发布has_many:标签,通过:: themes)
这是我的序列化工具的样子:
class PostSerializer < ActiveModel::Serializer
embed :ids, include: true
attributes :id, :heading, :content, :image_url
has_many :tags
end
class TagSerializer < ActiveModel::Serializer
embed :ids, include: true
attributes :id, :name
end
Run Code Online (Sandbox Code Playgroud)
这在一个方向上起作用:搜索帖子也将获得所有标签.不能在另一个中工作,因为我在TagSerializer中没有has_many.但是,如果我在两个序列化程序中都放置了has_many,则会出现堆栈级别太深的错误.
所以我想我的问题是:与ActiveModel序列化器实现多对多关系的典型方法是什么?我似乎无法找到任何有关如何在Rails后端设置它的资源.任何帮助,将不胜感激.谢谢!
我刚刚关注了ember-cli主页上的"入门"帖子.
我安装了ember 0.1.2,bower,phantomjs等.
我创建了我的应用程序,但是,当我运行'ember server'时,它会输出以下内容:
version: 0.1.2
Livereload server on port 35729
Serving on http://0.0.0.0:4200
Run Code Online (Sandbox Code Playgroud)
但冻结.当我尝试访问该页面时,它会无限期挂起.我也无法关闭服务器(ctrl + c).我被迫杀了-9.
如果可能的话,我真的希望能够解决这个问题!我安装了早期版本的ember-cli(0.0.3 ish?),当时工作正常.
如果需要更多信息,请在评论中告诉我您的需求!
ember -v输出:
version: 0.1.2
node: 0.13.0-pre
npm: 2.1.2
Run Code Online (Sandbox Code Playgroud)
谢谢
我在我的规范中使用sinon并将其包含在ember-cli文档中描述的Brocfile中.这有效,我可以在我的规格中使用sinon.但是,jshint抱怨没有定义sinon:
1 error: expected false to be truthy
AssertionError: unit/views/edit-todo-test.js should pass jshint.
unit/views/edit-todo-test.js: line 11, col 18, 'sinon' is not defined.
Run Code Online (Sandbox Code Playgroud)
我可以通过在规范中将sinon声明为全局来解决这个问题:
/* global sinon */
Run Code Online (Sandbox Code Playgroud)
但是,我必须将它添加到每一个规格(沿beforeEach,afterEach等...).我更愿意只在全局配置一次,但是当我将这些全局变量添加到predef.jshintrc中的数组时,它们不会被忽略,我仍然会得到错误.例如:
.jshintrc:
{
"predef": [
"document",
"window",
"-Promise",
"sinon"
],
<-- snip -->
Run Code Online (Sandbox Code Playgroud)
仍然失败并出现错误 'sinon' is not defined.
任何帮助将不胜感激.谢谢!
我是网络部署的新手.任何人都可以告诉/向我展示将我的ember cli应用程序部署到GoDaddy所需的步骤吗?如果无论如何GoDaddy不支持ember cli应用程序,是否有某种方式像某些类似java文件可以编译或类似于ember中的东西能够在任何托管站点部署它?如果是的话,请赐教.
我正在使用Ember-CLI来开发我的Ember应用程序.
我有一个"超级"路线(在routes/authenticate.js中),如下所示:
import Ember from 'ember';
export default Ember.Route.extend({
});
Run Code Online (Sandbox Code Playgroud)
我想让它成为我的应用程序中其他一些路线的基类,比如这个(route/home.js):
import Ember from 'ember';
export default App.AuthenticatedRoute.extend({
});
Run Code Online (Sandbox Code Playgroud)
它不起作用.控制台说:未捕获的ReferenceError:未定义应用程序
Ember-CLI指南对此方案没有任何说明(我认为这是必不可少的).
任何人都知道如何以最简单的方式正确地做到这一点?
谢谢,拉卡
我有一个全球定制适配器:
// app/adapters/application.js
import ActiveModelAdapter from 'active-model-adapter';
export default ActiveModelAdapter.extend({
namespace: 'api',
host: 'http://reportsdashboard-v2.daliaresearch.com.dev'
});
Run Code Online (Sandbox Code Playgroud)
另一个特定于一个模型:
// app/adapters/chart.js
import ActiveModelAdapter from 'active-model-adapter';
export default ActiveModelAdapter.extend({
namespace: 'api',
host: 'http://reportsdashboard-v2.daliaresearch.com.dev',
buildURL: function(type, id, snapshot) {
return this.host + '/' + this.namespace + '/reports/' + snapshot.record.get('report.id') + '/charts/' + id;
}
});
Run Code Online (Sandbox Code Playgroud)
如您所见,存在定义属性'namespace'和'api'的重复.这是我尝试从ChartsAdapter继承ApplicationAdapter的原因之一.
我在我的model钩子里使用RSVP.hash .但是我需要我的路线来加载基于url(包含动态段)的动态数据.即this.route('foo', {path: ':id'}).
所以我决定将一些东西移出afterModel钩子.
但是,我需要执行商店params(用于分页):
model(params) {
this.set('params', params);
return this.store.findRecord('foo', params.foo_id);
},
afterModel: function(model) {
console.log(this.get('params')); // logs the right params
let params = this.get('params');
// This store query needs access to params
this.store.query('bar', { filter: { 'foo-id': model.get('id') }, page: { number: (params.page ? params.page : 1) } }).then(bars => {
this.controller.set('bars', bars);
});
}
setupController(controller, model) {
this._super(controller, model);
this.set('bars', bars);
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有这个,它有效:
model(params) {
this.set('params', params);
... …Run Code Online (Sandbox Code Playgroud) 我们正在将现有的遗留项目迁移到Ember,我们的项目同时包含SASS和SCSS文件.我正在使用ember-cli-sass来处理SASS文件,包括一个选项"extension:'sass'".它工作得非常好.但我如何配置此插件以同时使用.sass和.scss文件.请帮忙!!