Emberjs应用程序加载在除Index之外的所有路由上

Emberjs application loads on all routes except Index

本文关键字:路由 加载 应用程序 Index Emberjs      更新时间:2023-09-26

我将尽我所能,解决我在这里面临的问题,基本的总结是,我有一个ember-cli项目,无论我做什么,索引路由都不会加载。但我所有其他路线的负载都很好。

//损坏的路线图像https://i.stack.imgur.com/KB7Mw.png

//工作路线图像https://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)

所以我想,也许我的路线/申请或路线/索引不好。

//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";
  }
});

现在我不知道该怎么想,因为我找不到任何关于这方面的文件。我觉得这不应该发生,但如果其他人有这个问题,我很想知道解决方案。

MY适配器:

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>

更新:

我发现动态分段是由创建错误资源引起的。删除后,我能够把它归结为一个错误。

处理路由时出错:index无法读取未定义类型的属性"extend"错误:无法读取未指定的属性"expand"

"似乎您正试图在非ES6环境中运行ES6语法"

@milkywayjoe你的方向是正确的,但更大的问题是到底是什么语法导致了这个错误?我最终做了一个新项目,然后逐个文件进行比较,唯一突出的是导入方法的更改。

我使用了一个严格的导入:

import 'project/utils/plugins';

但相对进口似乎是唯一有效的

import '../utils/plugins';

我找到了另一个有这个问题的人,他们似乎也得到了同样的结果。

加载项不工作

他提到了Ember应用程序的名称空间,但更具体地说是在配置文件中设置的modulePrefix。这似乎是目前这个错误的唯一解决方案。