我已经按照本教程http://kroltech.com/2013/12/boilerplate-web-app-using-backbone-js-expressjs-node-js-mongodb/来设置我的后端node.js服务器,但不是使用backbone-marionette作为前端我想尝试使用ember。因此,在成功设置服务器之后,我现在正在阅读本教程中的ember http://emberjs.com/guides/getting-started/。
我遇到的问题是将外部模板包含在我的ember路线中。使用此代码和在浏览器中编写的待办事项模板,应用程序可以正常工作。
var Ember = require('ember');
window.Todos = Ember.Application.create();
Todos.Router.map(function() {
this.resource('todos', { path: '/' });
});
但是,使用./templates/application.hbs编写的模板并使用browserify试试这个,
Todos.Router.map(function() {
this.resource(require('./templates/application.hbs'), { path: '/' });
});
我收到如下所示的错误。
Uncaught TypeError: undefined is not a function myapp.js:46841
Error: Assertion Failed: The URL '/' did not match any routes in your application
at new Error (native)
at Error.Ember.Error (http://localhost:3300/js/myapp.js:12978:19)
at Object.Ember.assert (http://localhost:3300/js/myapp.js:12141:11)
at http://localhost:3300/js/myapp.js:47347:15
at invokeCallback (http://localhost:3300/js/myapp.js:22081:19)
at publish (http://localhost:3300/js/myapp.js:21751:9)
at publishRejection (http://localhost:3300/js/myapp.js:22179:7)
at http://localhost:3300/js/myapp.js:30448:7
at Object.DeferredActionQueues.flush (http://localhost:3300/js/myapp.js:18195:24)
at Object.Backburner.end (http://localhost:3300/js/myapp.js:18283:27) myapp.js:15589
Uncaught Error: Assertion Failed: Error: Assertion Failed: The URL '/' did not match any routes in your application
我希望有人可以了解如何在ember路由器中包含外部模板。谢谢!
答案 0 :(得分:0)
感谢您对此进行调查!我认为我在解释我的问题时做得很差 - 我明白这是模板名称,但我不明白如何在我的应用程序中包含它。我搜索了一下,发现grunt-ember-templates
。
为了将来参考,他们有非常好的文档可以让你设置,这就是我的emberTemplates代码的样子。
emberTemplates: {
compile: {
options: {
templateBasePath: 'client/src/templates'
},
files: {
'build/templates.js': ['client/src/templates/*.hbs']
}
}
},
然后我添加了'application'
作为路由模板名称。
不要忘记编译你的应用程序版本中的所有build /。