修改
我尝试转到我的应用中的另一个页面,我最终得到了这个错误:Uncaught Error: Assertion Failed: TypeError: Cannot read property 'Mixin' of undefined
。我将其跟踪到这行代码:__exports__["default"] = DS.Model.extend(Ember.Validations.Mixin, {
,它使用Ember Validations。我怀疑这是问题的来源。升级Handlebars时有没有人对Ember Validations有任何问题?
原帖:
我在将Ember升级到1.9.1时遇到了一些问题。具体来说,我认为它不是以与Handlebars 2.0兼容的方式编译我的模板。我收集到这是一个常见的问题,但唯一有效的解决方案是使用Ember canary而不是1.9.1。由于这不是一个选项,我需要找到一种方法,使Handlebars 2.0与我升级的应用程序很好玩。
当我运行我的应用程序时,我的控制台在handlebars.js的这一部分显示错误:Uncaught Error: Unknown template object: function
:
if (!templateSpec || !templateSpec.main) {
throw new Exception('Unknown template object: ' + typeof templateSpec);
}
我首先使用Ember CLI站点上的these instructions从0.1.2切换到Ember CLI 0.1.5来升级我的应用程序。然后,我首先将我的bower.js中的Ember版本更改为1.9.1,然后在官方Ember网站上关注these instructions,尝试将Ember升级到1.9.1。这没用,所以我尝试使用Ember canary而不是1.9.1,这很好。
这是我的package.js:
{
"name": "appName",
"version": "0.0.0",
"private": true,
"directories": {
"doc": "doc",
"test": "tests"
},
"scripts": {
"start": "ember server",
"build": "ember build",
"test": "ember test"
},
"repository": "https://github.com/stefanpenner/ember-cli",
"engines": {
"node": ">= 0.10.0"
},
"author": "",
"license": "MIT",
"devDependencies": {
"body-parser": "^1.2.0",
"broccoli-asset-rev": "^2.0.0",
"broccoli-merge-trees": "^0.1.4",
"broccoli-sass": "^0.2.1",
"broccoli-static-compiler": "^0.1.4",
"ember-cli": "0.1.5",
"ember-cli-content-security-policy": "0.3.0",
"ember-cli-dependency-checker": "0.0.7",
"ember-cli-esnext": "0.1.1",
"ember-cli-htmlbars": "^0.6.0",
"ember-cli-ic-ajax": "0.1.1",
"ember-cli-inject-live-reload": "^1.3.0",
"ember-cli-qunit": "0.1.2",
"ember-cli-simple-auth": "^0.6.7",
"ember-cli-simple-auth-oauth2": "^0.6.7",
"ember-cli-spinkit": "0.0.1",
"ember-data": "1.0.0-beta.11",
"ember-export-application-global": "^1.0.0",
"express": "^4.8.5",
"glob": "^4.0.5"
}
}
这是我的bower.js:
{
"name": "appName",
"dependencies": {
"handlebars": "2.0.0",
"jquery": "^1.11.1",
"ember": "1.9.1",
"ember-data": "1.0.0-beta.12",
"ember-resolver": "~0.1.11",
"loader.js": "stefanpenner/loader.js#1.0.1",
"ember-cli-shims": "stefanpenner/ember-cli-shims#0.0.3",
"ember-cli-test-loader": "rwjblue/ember-cli-test-loader#0.0.4",
"ember-load-initializers": "stefanpenner/ember-load-initializers#0.0.2",
"ember-qunit": "0.1.8",
"ember-qunit-notifications": "0.0.4",
"qunit": "~1.15.0",
"ember-simple-auth": "0.6.7",
"bootstrap-sass-official": "~3.3.1",
"ember-validations": "http://builds.dockyard.com.s3.amazonaws.com/ember-validations/ember-validations-latest.js"
}
}
有什么想法吗? StackOverflow我可能错过了哪些问题?
答案 0 :(得分:2)
今天我遇到了和你一样的问题,我想从ember-cli 1.8.1迁移到1.9.1。
我按照以下说明解决了这个问题:http://emberjs.com/blog/2014/10/16/handlebars-update.html。 您可以直接在bower.json文件中直接更改ember和handlebars的版本,而不是执行第4步和第5步,然后再执行“bower install'命令。这就是我所做的。
我的projets适用于ember-cli 0.1.5,ember 1.9.1和把手2.0.0。
也许你在更新过程中遗漏了一些东西。
答案 1 :(得分:2)
原帖中的问题:
我和你有同样的问题。对我来说,问题似乎是我的一个依赖项,在我的案例中是ember-cli-bootstrap-sass。 当我做了一个npm卸载ember-cli-bootstrap-sass --save-dev(并删除了我的@import" bootstrap&#34 ;;)我摆脱了错误。因此,您使用的依赖项中的某些内容可能与您说的
不兼容