我正在使用ember-cli并且在选择生产环境时遇到问题.具体来说,当我跑步时一切正常,我跑步时ember serve --environment=development得到一个空白页面ember serve --environment=production.在控制台中,我看到:
所有其他事情都是平等的,所有依赖关系都是最新的.我是一个总菜鸟所以我甚至不知道从哪里开始如何调试:是它的余烬吗?烬-CLI?西兰花?任何帮助,将不胜感激.
在一个带有Rails 4后端的基于Ember-cli的项目中 - 我需要能够保存(并最终读取)嵌套数据.数据模型很直接......
Survey
name: string
Question:
survey_id: integer
question_type_id: integer
text: string
Answer:
question_id: integer
text: string
A Survey hasMany Questions. Each Question hasMany Answers
Run Code Online (Sandbox Code Playgroud)
我想弄清楚如何编写自定义Survey序列化程序.根据我的研究,我知道我需要扩展DS.JSONSerializer - 但我不知道该怎么做.任何帮助将不胜感激.
谢谢
我对Ember.js和Ember-cli都比较陌生,非常感谢在自定义视图中使用jquery工具提示.所有代码都在下面,但是当我注入模板时,我收到以下控制台错误:
[Error] TypeError: 'undefined' is not a function (evaluating 'Ember.$().tooltip()')
Run Code Online (Sandbox Code Playgroud)
我在名为tooltip.js的文件中使用自定义视图:
import Ember from 'ember';
export default Ember.View.extend({
tagName: 'span',
title: 'The tooltip title',
html: true,
placement: 'top',
didInsertElement: function(){
Ember.$().tooltip({"html": this.get('html'),
"title":this.get('title'),
"placement":this.get('placement'),
container: 'body'});
}
});
Run Code Online (Sandbox Code Playgroud)
相关的模板代码是:
{{#view "tooltip" titleBinding="item" placement="right"}}<span><img class="app_info_icon" id="typeInfoIcon" src="/assets/images/info_icon.png"></img></span>{{/view}}
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我刚刚迁移了一个Ember应用程序,通过将podModulePrefix属性添加到我的应用程序来使用pod结构.所有路由模板,支持路由模板的控制器以及路由本身都存在于:
app/
modules/
route_name/
template.hbs
controller.js
route.js
Run Code Online (Sandbox Code Playgroud)
现在我做了很多手工切换带有命名插座的模板.因此路由模板可能包含两个命名的出口,并且可以在任何时候将4或5个模板呈现到这些出口中.截至目前,这些额外的模板位于Ember-CLI创建的模板目录中:
app/
templates/
route_name/
temp1
temp2
Run Code Online (Sandbox Code Playgroud)
我的路线上可能存在的一个动作可能包含此调用:
this.render('route_name/temp1', {outlet: 'named', into: 'route_name'});
Run Code Online (Sandbox Code Playgroud)
这样做的步骤是什么,以便放置在pod上的模板文件夹中的模板是可解析的:
app/
modules/
route_name/
template.hbs
controller.js
route.js
templates/
temp1
Run Code Online (Sandbox Code Playgroud)
而如何将我然后引用temp1的this.render()?
使用ember-cli及其ES6模块转换器如何以及在何处定义,以便适用于我的应用程序中的所有数组:
Array.prototype.move = function (old_index, new_index) {
....
};
Run Code Online (Sandbox Code Playgroud) 如何使用ember集成测试选择单选按钮和特定选择选项?我知道如何使用click one和fillIn作为输入.
为了使ember-2.0角度支架组件能够与最新的ember-cli一起使用,我还需要什么
我使用ember-cli 0.27,nodejs 0.12.4和emberjs-canary分支来测试emberjs-2.0.
我创建了一个简单的新骨架应用程序:
ember new test-app
Run Code Online (Sandbox Code Playgroud)
并创建了一个组件:
ember g component my-test
Run Code Online (Sandbox Code Playgroud)
在application.hbs中,如果我添加以下行来调用组件,则不会显示组件中的内容.
<my-test />
Run Code Online (Sandbox Code Playgroud)
如果将上面的行更改为下面的行,则会显示该组件的内容.
{{my-test}}
Run Code Online (Sandbox Code Playgroud)
这是我的bower.json的摘录
{
"name": "em",
"dependencies": {
"ember": "components/ember#canary",
"ember-data": "components/ember-data#canary",,
"ember-cli-shims": "ember-cli/ember-cli-shims#0.0.3",
"ember-cli-test-loader": "ember-cli-test-loader#0.1.3",
"ember-data": "1.0.0-beta.18",
"ember-load-initializers": "ember-cli/ember-load-initializers#0.1.4",
"ember-qunit": "0.3.3",
"ember-qunit-notifications": "0.0.7",
"ember-resolver": "~0.1.15",
"jquery": "^1.11.1",
"loader.js": "ember-cli/loader.js#3.2.0",
"qunit": "~1.17.1"
},
"resolutions": {
"ember": "canary",
"ember-data": "canary"
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的包,json
"devDependencies": {
"broccoli-asset-rev": "^2.0.2",
"ember-cli": "0.2.7",
"ember-cli-app-version": "0.3.3",
"ember-cli-babel": "^5.0.0",
"ember-cli-content-security-policy": "0.4.0",
"ember-cli-dependency-checker": "^1.0.0",
"ember-cli-htmlbars": "0.7.6",
"ember-cli-ic-ajax": "0.1.1",
"ember-cli-inject-live-reload": …Run Code Online (Sandbox Code Playgroud) 我找了一个重复的问题,但在SO上找不到.因此它就在这里.
我的#each模板中有一个块,它成功地从数组中打印了值,但是当我尝试@index在这个块中使用这样的当前索引时{{@index}},它是未定义的.
从官方车把文档中我发现了获取当前索引的方法.
路由器(router.js):
Router.map(function() {
this.resource("books", function(){
this.route("about", { path : "/:bookId"}, function(){
});
});
});
Run Code Online (Sandbox Code Playgroud)
路线(routes/books.js):
var BooksRoute = Em.Route.extend({
model: function() {
return [{
name: "Harry Potter & The Deathly Hallows"
}, {
name: "What If?"
}, {
name: "Diary of a Wimpy Kid"
}, {
name: "The Martian"
}];
}
});
export default BooksRoute;
Run Code Online (Sandbox Code Playgroud)
模板(templates/books/index.hbs):
<div class="page-header">
<h1>All Books!</h1>
<ul>
{{#each book in model}}
{{@index}}
<li>{{#link-to "books.about"}} {{book.name}} …Run Code Online (Sandbox Code Playgroud) 使用Ember:1.13.11,Ember数据:1.13.8,ember-cli:1.13.12
我想动态地向网页添加一个组件 - 这个网页是另一个组件的模板,不认为它会产生任何不同 - .这是我的代码片段,我在其中尝试将一个名为LyricsEditorLine的组件添加到<div>标记中,不知何故,这样
议程-α/组件/歌词-editor.js内
import Ember from 'ember';
import LyricsEditorLine from 'agenda-alpha/components/lyrics-editor-line';
export default Ember.Component.extend({
afterRenderEvent:function(){
LyricsEditorLine.create().appendTo($("#in"));
},
init:function(){
Ember.run.scheduleOnce('afterRender', this, this.afterRenderEvent);
this._super();
}
});
Run Code Online (Sandbox Code Playgroud)
议程-α/模板/组件/歌词,editor.hbs
<div id='in'> </div>
Run Code Online (Sandbox Code Playgroud)
每次这给了我
'Uncaught Error: Assertion Failed: You cannot append to an existing Ember.View. Consider using Ember.ContainerView instead'
Run Code Online (Sandbox Code Playgroud)
寻找ContainerViewhere发现它已被弃用
我发现的大部分答案都没有使用ember-cli并且作为初学者使得它更难理解
我希望能够根据用户需要添加组件
所以在rails中我们可以通过名称,id等找到记录,类似我想在ember中做而不提出服务器请求我有一个名为person {id,name}的模型.如果我想通过id偷看记录,我这样做:
this.get('store').peekRecord('person', id)
Run Code Online (Sandbox Code Playgroud)
它给了我基于id的记录,但现在我想偷看一个特定名称的记录,我试过这样的事情:
this.get('store').peekRecord('person', {name: "testname"})
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.我只需要使用名称来查看记录
ember-cli ×10
ember.js ×10
broccolijs ×1
htmlbars ×1
javascript ×1
jquery ×1
npm ×1
templates ×1