Emberjs 应用程序加载除 Index 之外的所有路由
Emberjs application loads on all routes except Index
我会尽力解决我在这里面临的问题,基本总结是我有一个 ember-cli 项目,无论我做什么,索引路由都不会加载。但是我所有其他路线加载都很好。
//损坏的路线图像
http://i.stack.imgur.com/KB7Mw.png
//工作路线图
http://i.stack.imgur.com/YzheD.png
起初我还以为这可能是我的车把模板。然后我更新到最新版本的 ember-cli 并使用了 htmlbars,它仍然没有显示。
所以我追踪了 Promise 看看那里是否有希望:
VM66628:70 Ember Inspector (Promise Trace): Ember: Process errors from Router
at new Promise (http://localhost:4200/assets/vendor.js:59149:9)
at Promise.then (http://localhost:4200/assets/vendor.js:59387:21)
at Object.Transition.then (http://localhost:4200/assets/vendor.js:56759:29)
at didBeginTransition (http://localhost:4200/assets/vendor.js:34821:16)
at EmberObject.default.extend._doURLTransition (http://localhost:4200/assets/vendor.js:34104:7)
at EmberObject.default.extend.handleURL (http://localhost:4200/assets/vendor.js:34099:19)
at EmberObject.default.extend.startRouting (http://localhost:4200/assets/vendor.js:33986:38)
at exports.default.EmberObject.default.extend.startRouting (http://localhost:4200/assets/vendor.js:14194:14)
at Namespace.default.extend.didBecomeReady (http://localhost:4200/assets/vendor.js:14904:37)
VM66628:70 Ember Inspector ($E): TypeError: Cannot read property 'extend' of undefined
at http://localhost:4200/assets/redberry-ios.js:1871:77
at mod.state (http://localhost:4200/assets/vendor.js:150:29)
at tryFinally (http://localhost:4200/assets/vendor.js:30:14)
at requireModule (http://localhost:4200/assets/vendor.js:148:5)
at requireFrom (http://localhost:4200/assets/vendor.js:121:12)
at reify (http://localhost:4200/assets/vendor.js:106:22)
at mod.state (http://localhost:4200/assets/vendor.js:149:17)
at tryFinally (http://localhost:4200/assets/vendor.js:30:14)
at requireModule (http://localhost:4200/assets/vendor.js:148:5)
at resolveOther (http://localhost:4200/assets/vendor.js:60054:20)
所以我想也许我的 Route/Application 或 Route/Index 不好。
//APPLICATION ROUTE
import Ember from 'ember';
export default Ember.Route.extend({
actions: {
sessionAuthenticationFailed: function(params) {
this.controllerFor('sessions/new').set('errorMessage', params.error);
},
error: function(error, transition) {
this.render('error', {
into: 'application'
});
}
}
});
//INDEX ROUTE
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return this.store.find('product');
},
actions: {
}
});
//A ROUTE THAT WORKS
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return Ember.Object.create();
},
activate: function() {
this._super();
document.title = "Sign In";
}
});
现在我不确定该怎么想,因为我找不到任何相关文档。我觉得它不应该发生,但如果其他人遇到这个问题,我很想知道解决方案。
我的适配器:
Ill be spending a few more hours looking into it, but the adapter looks fine:
import DS from 'ember-data';
import Ember from 'ember';
import ENV from "../config/environment";
Ember.$.ajaxSetup({
crossDomain: true,
xhrFields: {
withCredentials: true
}
});
export default DS.ActiveModelAdapter.extend({
namespace: ENV.NAMESPACE,
host: 'http://testing.herokuapp.com'
});
更新:
所以每个人都可以看到我没有传递动态段,尽管它说我是这就是我的模板的样子:
<!--APPLICATION.HBS-->
{{outlet "modal"}}
{{partial "header"}}
<div class="interior">
<div class="wrapper">
<div class="row">
<div class="span14 list-view">
{{outlet}}
</div>
</div>
</div>
{{partial "footer"}}
</div>
<!--HEADER.HBS-->
<div class="nav">
<ul class="ul-left">
<li>{{#link-to 'index' tagName="a"}}
<h1><i class="rb-redberry error"></i></h1><!--{{make-title titleName}}-->
{{/link-to}}</li>
</ul>
<ul class="ul-right">
</ul>
</div>
<!--HEADER.HBS-->
<h1>Hello I am the Index and I loaded</h1>
<!--FOOTER.HBS-->
<div id="footer">
<div class="span14">
<div class="row centered">
<div class="span9">
<ul>
<li>Home</li>
<li>Shop</li>
<li>About Us</li>
<li>Blog</li>
<li>Become a Seller</li>
<li>Contact Us</li>
<li>Terms of Use</li>
</ul>
</div>
<div class="span3">
<div class="row"></div>
<div class="row"></div>
</div>
</div>
</div>
</div>
更新更新:
我发现动态段是由创建错误资源引起的。删除它后,我能够将其归结为一个错误。
处理路由时出错:索引无法读取未定义的 属性 'extend' 类型错误:无法读取未定义的 属性 'extend'
"It seems like you're trying to run ES6 syntax in a non-ES6 environment"
@milkywayjoe 你的方向是正确的,但更大的问题是究竟是什么语法导致了错误?
我最终做了一个 ember 新项目,
然后逐个文件比较,唯一突出的是导入方法的变化。
我使用的是严格导入:
import 'project/utils/plugins';
但相对导入似乎是唯一有效的方法
import '../utils/plugins';
我找到了另一个有这个问题的人,他们似乎也得出了同样的结果。
Addon not working
他提到了 Ember 应用命名空间,但更具体地说是在配置文件中设置的 modulePrefix。这似乎是目前此错误的唯一解决方案。
我会尽力解决我在这里面临的问题,基本总结是我有一个 ember-cli 项目,无论我做什么,索引路由都不会加载。但是我所有其他路线加载都很好。
//损坏的路线图像 http://i.stack.imgur.com/KB7Mw.png
//工作路线图 http://i.stack.imgur.com/YzheD.png
起初我还以为这可能是我的车把模板。然后我更新到最新版本的 ember-cli 并使用了 htmlbars,它仍然没有显示。 所以我追踪了 Promise 看看那里是否有希望:
VM66628:70 Ember Inspector (Promise Trace): Ember: Process errors from Router
at new Promise (http://localhost:4200/assets/vendor.js:59149:9)
at Promise.then (http://localhost:4200/assets/vendor.js:59387:21)
at Object.Transition.then (http://localhost:4200/assets/vendor.js:56759:29)
at didBeginTransition (http://localhost:4200/assets/vendor.js:34821:16)
at EmberObject.default.extend._doURLTransition (http://localhost:4200/assets/vendor.js:34104:7)
at EmberObject.default.extend.handleURL (http://localhost:4200/assets/vendor.js:34099:19)
at EmberObject.default.extend.startRouting (http://localhost:4200/assets/vendor.js:33986:38)
at exports.default.EmberObject.default.extend.startRouting (http://localhost:4200/assets/vendor.js:14194:14)
at Namespace.default.extend.didBecomeReady (http://localhost:4200/assets/vendor.js:14904:37)
VM66628:70 Ember Inspector ($E): TypeError: Cannot read property 'extend' of undefined
at http://localhost:4200/assets/redberry-ios.js:1871:77
at mod.state (http://localhost:4200/assets/vendor.js:150:29)
at tryFinally (http://localhost:4200/assets/vendor.js:30:14)
at requireModule (http://localhost:4200/assets/vendor.js:148:5)
at requireFrom (http://localhost:4200/assets/vendor.js:121:12)
at reify (http://localhost:4200/assets/vendor.js:106:22)
at mod.state (http://localhost:4200/assets/vendor.js:149:17)
at tryFinally (http://localhost:4200/assets/vendor.js:30:14)
at requireModule (http://localhost:4200/assets/vendor.js:148:5)
at resolveOther (http://localhost:4200/assets/vendor.js:60054:20)
所以我想也许我的 Route/Application 或 Route/Index 不好。
//APPLICATION ROUTE
import Ember from 'ember';
export default Ember.Route.extend({
actions: {
sessionAuthenticationFailed: function(params) {
this.controllerFor('sessions/new').set('errorMessage', params.error);
},
error: function(error, transition) {
this.render('error', {
into: 'application'
});
}
}
});
//INDEX ROUTE
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return this.store.find('product');
},
actions: {
}
});
//A ROUTE THAT WORKS
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return Ember.Object.create();
},
activate: function() {
this._super();
document.title = "Sign In";
}
});
现在我不确定该怎么想,因为我找不到任何相关文档。我觉得它不应该发生,但如果其他人遇到这个问题,我很想知道解决方案。
我的适配器:
Ill be spending a few more hours looking into it, but the adapter looks fine:
import DS from 'ember-data';
import Ember from 'ember';
import ENV from "../config/environment";
Ember.$.ajaxSetup({
crossDomain: true,
xhrFields: {
withCredentials: true
}
});
export default DS.ActiveModelAdapter.extend({
namespace: ENV.NAMESPACE,
host: 'http://testing.herokuapp.com'
});
更新:
所以每个人都可以看到我没有传递动态段,尽管它说我是这就是我的模板的样子:
<!--APPLICATION.HBS-->
{{outlet "modal"}}
{{partial "header"}}
<div class="interior">
<div class="wrapper">
<div class="row">
<div class="span14 list-view">
{{outlet}}
</div>
</div>
</div>
{{partial "footer"}}
</div>
<!--HEADER.HBS-->
<div class="nav">
<ul class="ul-left">
<li>{{#link-to 'index' tagName="a"}}
<h1><i class="rb-redberry error"></i></h1><!--{{make-title titleName}}-->
{{/link-to}}</li>
</ul>
<ul class="ul-right">
</ul>
</div>
<!--HEADER.HBS-->
<h1>Hello I am the Index and I loaded</h1>
<!--FOOTER.HBS-->
<div id="footer">
<div class="span14">
<div class="row centered">
<div class="span9">
<ul>
<li>Home</li>
<li>Shop</li>
<li>About Us</li>
<li>Blog</li>
<li>Become a Seller</li>
<li>Contact Us</li>
<li>Terms of Use</li>
</ul>
</div>
<div class="span3">
<div class="row"></div>
<div class="row"></div>
</div>
</div>
</div>
</div>
更新更新:
我发现动态段是由创建错误资源引起的。删除它后,我能够将其归结为一个错误。
处理路由时出错:索引无法读取未定义的 属性 'extend' 类型错误:无法读取未定义的 属性 'extend'
"It seems like you're trying to run ES6 syntax in a non-ES6 environment"
@milkywayjoe 你的方向是正确的,但更大的问题是究竟是什么语法导致了错误? 我最终做了一个 ember 新项目, 然后逐个文件比较,唯一突出的是导入方法的变化。
我使用的是严格导入:
import 'project/utils/plugins';
但相对导入似乎是唯一有效的方法
import '../utils/plugins';
我找到了另一个有这个问题的人,他们似乎也得出了同样的结果。
Addon not working
他提到了 Ember 应用命名空间,但更具体地说是在配置文件中设置的 modulePrefix。这似乎是目前此错误的唯一解决方案。