我Uncaught Error: Assertion Failed: Attempted to register a view with an id already in use: name使用ember-cli 随机开始在我的应用上出现此错误.我只有两条路线
Router.map(function() {
this.route('buy');
this.route('rent');
});
Run Code Online (Sandbox Code Playgroud)
没有控制器,我的索引路由重定向到我 buy
redirect: function() {
this.transitionTo('buy');
}
Run Code Online (Sandbox Code Playgroud)
我的rent路线也渲染buy模板
renderTemplate: function() {
this.render('buy');
}
Run Code Online (Sandbox Code Playgroud)
我没有rent或index模板.我不知道这个错误来自哪里.
我的应用程序名称是App,当环境=开发时,我可以访问App命名空间.唯一的问题是当我通过运行使用生产版本时出现问题(ember server --environment = production,然后我不再访问App命名空间,因为它未定义.
Error while processing route: coming-soon App is not defined ReferenceError: App is not defined
Run Code Online (Sandbox Code Playgroud)
这是ember-cli采取的安全措施吗?我怎么能覆盖这个呢?
我正在尝试用ember-cli构建todoMVC,使用DS.RESTAdapter和表达来模拟调用.我得到的问题是,当我尝试保存新的待办事项时,我在控制台中看到此错误:
SyntaxError: Unexpected end of input
at Object.parse (native)
at jQuery.parseJSON (http://localhost:4200/assets/vendor.js:8717:22)
at ajaxConvert (http://localhost:4200/assets/vendor.js:9043:19)
at done (http://localhost:4200/assets/vendor.js:9461:15)
at XMLHttpRequest.jQuery.ajaxTransport.send.callback (http://localhost:4200/assets/vendor.js:9915:8)
Run Code Online (Sandbox Code Playgroud)
我很确定问题是,当我调用save()新创建的模型时,它正在发送一个发布请求给/快递正在回复:
todosRouter.post('/', function(req, res) {
res.status(201).end();
});
Run Code Online (Sandbox Code Playgroud)
这是在Ember中创建todo的创建动作:
actions:
createTodo: ->
return unless title = @get('newTitle')?.trim()
@set('newTitle', '')
@store.createRecord('todo',
title: title
isCompleted: false
).save()
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.我是新来表达并且不确定为什么jquery不喜欢它返回的201.
在路由测试中,我需要访问服务,以检索模型.我已经通过需求引用了服务,但在测试中我没有看到访问服务的方法.
import {
moduleFor,
test
} from 'ember-qunit';
moduleFor('route:application', {
needs: ['route:application','controller:application','service:dialog']
});
test('can open and remove a dialog dialog', function(assert) {
var route = this.subject();
route.setProperties({
controller: { // don't like this part as well ..
dialogs:null
}
});
// need to access the service here to get a model
// something like :
//var service = this.get('service:dialog');
var modalModel = service.getModal('business/contract-edit');
...
});
Run Code Online (Sandbox Code Playgroud)
如何在测试中访问服务?
(顺便说一句:我正在使用ember v2.0.0)
我正在使用带有ember-data 2.0的Ember 2.0.
在Rails中,使用真实的模型实例来模拟表单和组件是很常见的.对于posts/new表单,您将传入a Post.new并在form.html.erb模板中使用它.
在Ember中,因为召唤new Post造成了破碎的模型而变得困难.相反,我们鼓励你使用商店,并使用它this.store.createRecord('post');.
这很好,但在构建隔离组件时却没有.例如,用户可以添加多个模型的表单,例如类别创建者.在我的脑海中,结构将如下所示:
category-form/template.hbs
<button {{action 'addCategory'}}>Add category</button>
{{#each categories as |category|}}
{{input value=category.name}}
{{/each}}
<button {{action 'save'}}>Save</button>
Run Code Online (Sandbox Code Playgroud)
然后component.js将是这样的:
category-form/component.js
import Ember from 'ember';
import Category from 'app/category/model';
export default Ember.Component.extend({
categories: [],
actions: {
addCategory() {
// THIS DOES NOT WORK
this.get("categories").pushObject(new Category);
},
save() {
this.sendAction("saveCategories", this.get("categories"));
}
}
});
Run Code Online (Sandbox Code Playgroud)
上面的示例确实有效,但需要this.store.createRecord.但据我所知,该组件无法访问该商店.这是理智的,因为那将是一个混乱全球国家的组成部分.此外,createRecord如果用户导航离开而不保存模型,则在使用时最终会在商店中存在大量残留模型.
我希望category-form此示例中的组件与全局状态的其余部分完全隔离.
我的问题是,如何使用ember逻辑正确处理?
我一直在浪费我的所有旅程,试图找到一个简单的教程,解释如何使用ember cli制作一个简单的应用程序来处理基本的json文件...我当然读过www.ember-cli.com,他们解释很多东西但是......我不知道该怎么办.是否有一个基本的例子解释(假人水平)如何制作一个解析json响应的简单应用程序?我已经使用了RESTAdapter,我已经构建了muy模型,但我真的不知道如何制作以便向我的模板发送一种响应.
这是app/adapters文件夹下的person.js文件
import DS from 'ember-data';
var ApplicationAdapter = DS.RESTAdapter.extend({
host: 'http://localhost:8000/persons',
namespace: 'person'
});
export default ApplicationAdapter;
Run Code Online (Sandbox Code Playgroud)
这是我app/model下的persons.js模型文件
import DS from 'ember-data';
export default DS.Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string'),
occupation: DS.attr('string')
});
Run Code Online (Sandbox Code Playgroud)
这是app/templates/components下的handlebars模板persons-tmp.hbs文件
<ul>
{{#each model as |item|}}
<li>{{item.firstName}}</li>
{{/each}}
</ul>
Run Code Online (Sandbox Code Playgroud)
我的persons.js文件处理文件夹app/routes
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return this.store.findAll('persons');
}
})
Run Code Online (Sandbox Code Playgroud)
最后调用http:// localhost:8000 / people的json响应:
"person": { …Run Code Online (Sandbox Code Playgroud) 从github移动.原始主题https://github.com/emberjs/ember.js/issues/13055
我刚刚开始使用ember,并且在使用'ember server'命令时遇到了问题.
我跑了
npm install -g ember-cli
npm install -g phantomjs
npm new test1
cd test1
ember server
Run Code Online (Sandbox Code Playgroud)
并收到以下错误消息:
version: 2.4.1
Livereload server on http://localhost:49152
Serving on http://localhost:4200/
File: modules/ember-ajax/errors.js
The Broccoli Plugin: [Babel] failed with:
ReferenceError: [BABEL] modules/ember-ajax/errors.js: Unknown option: /Users/Rubbelogbit/.babelrc.presets
at Logger.error (/Users/Rubbelogbit/Desktop/myWebsites/test1/node_modules/ember-cli-babel/node_modules/broccoli-babel-transpiler/node_modules/babel-core/lib/transformation/file/logger.js:58:11)
at OptionManager.mergeOptions (/Users/Rubbelogbit/Desktop/myWebsites/test1/node_modules/ember-cli-babel/node_modules/broccoli-babel-transpiler/node_modules/babel-core/lib/transformation/file/options/option-manager.js:126:29)
at OptionManager.addConfig (/Users/Rubbelogbit/Desktop/myWebsites/test1/node_modules/ember-cli-babel/node_modules/broccoli-babel-transpiler/node_modules/babel-core/lib/transformation/file/options/option-manager.js:107:10)
at OptionManager.findConfigs (/Users/Rubbelogbit/Desktop/myWebsites/test1/node_modules/ember-cli-babel/node_modules/broccoli-babel-transpiler/node_modules/babel-core/lib/transformation/file/options/option-manager.js:168:35)
at OptionManager.init (/Users/Rubbelogbit/Desktop/myWebsites/test1/node_modules/ember-cli-babel/node_modules/broccoli-babel-transpiler/node_modules/babel-core/lib/transformation/file/options/option-manager.js:229:12)
at File.initOptions (/Users/Rubbelogbit/Desktop/myWebsites/test1/node_modules/ember-cli-babel/node_modules/broccoli-babel-transpiler/node_modules/babel-core/lib/transformation/file/index.js:147:75)
at new File (/Users/Rubbelogbit/Desktop/myWebsites/test1/node_modules/ember-cli-babel/node_modules/broccoli-babel-transpiler/node_modules/babel-core/lib/transformation/file/index.js:137:22)
at Pipeline.transform (/Users/Rubbelogbit/Desktop/myWebsites/test1/node_modules/ember-cli-babel/node_modules/broccoli-babel-transpiler/node_modules/babel-core/lib/transformation/pipeline.js:164:16)
at Babel.transform (/Users/Rubbelogbit/Desktop/myWebsites/test1/node_modules/ember-cli-babel/node_modules/broccoli-babel-transpiler/index.js:94:21)
at Babel.processString (/Users/Rubbelogbit/Desktop/myWebsites/test1/node_modules/ember-cli-babel/node_modules/broccoli-babel-transpiler/index.js:123:25)
The broccoli plugin was instantiated …Run Code Online (Sandbox Code Playgroud) 我正在使用Ember.js 2.5.0,目前看来Ember仅限于三种环境development,test而且production.我怎样才能添加一些其他的env例如staging?
我有一个临时服务器,所以我们可以测试我们的应用程序,我想在那里使用不同的配置(比开发一个).有任何解决方法吗?
我的服务器正在使用端口:3000并且我正在使用节点,在服务器端表达,这在使用curl或REST客户端时工作正常.
ember cli server正在使用port:4200
我在environment.js上添加了此代码,用于将服务器连接到客户端.
contentSecurityPolicy: {
'default-src': "'none'",
'script-src': "'self' 'unsafe-inline' 'unsafe-eval'",
'font-src': "'self'",
'connect-src': "'self' http://localhost:3000",
'img-src': "'self'",
'report-uri':"'localhost'",
'style-src': "'self' 'unsafe-inline'",
'frame-src': "'none'"
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序适配器代码是:
import JSONAPIAdapter from 'ember-data/adapters/json-api';
export default JSONAPIAdapter.extend({
"host": "http://localhost:3000",
"namespace": "api"
});
Run Code Online (Sandbox Code Playgroud)
以这种方式运行我的ember服务器 ember服务器--proxy http://127.0.0.1:3000 在控制器上我使用ajax调用:
$.ajax({
type: 'POST',
url: '/blog',
contentType: 'application/json',
data: param,
processData: false,
success :
});
Run Code Online (Sandbox Code Playgroud)
它收到错误: POST http:// localhost:4200/blog 500(内部服务器错误)
我做了所有这些,但我不知道为什么它不起作用.如果您有任何想法,请帮助我.
我最近经历过emberjs 3.xI已经完成了一个基本的CRUD应用程序,它存储了联系人并更新了它们.
我想创建用户并为每个用户存储单独的联系人.
但是,如果我在谷歌搜索它,我最终只会在仅使用插件的示例中.
有没有办法在没有插件的情况下登录/注册?
ember-cli ×10
ember.js ×9
javascript ×2
ember-data ×1
environment ×1
express ×1
heroku ×1
jquery ×1
json ×1
rest ×1