ember.js - 升级 Ember 1.9.1 时的 Handlebars 问题

标签 ember.js handlebars.js ember-cli

编辑:

我尝试转到我的应用程序中的另一个页面,结果却收到了这个错误:Uncaught Error: Assertion Failed: TypeError: Cannot read property 'Mixin' of undefined .我追踪到这行代码:__exports__["default"] = DS.Model.extend(Ember.Validations.Mixin, { ,它使用 Ember 验证。我怀疑这就是问题的来源。有人在升级 Handlebars 时遇到 Ember 验证问题吗?

原帖:

我在将 Ember 升级到 1.9.1 时遇到了一些问题。具体来说,我认为它没有以与 Handlebars 2.0 兼容的方式编译我的模板。我发现这是一个常见问题,但唯一有效的解决方案是使用 Ember canary 而不是 1.9.1。由于这不是一个选项,我需要找到一种方法让 Handlebars 2.0 与我升级的应用程序一起运行。

当我运行我的应用程序时,我的控制台显示错误:Uncaught Error: Unknown template object: function在handlebars.js的这一部分:

if (!templateSpec || !templateSpec.main) {
  throw new Exception('Unknown template object: ' + typeof templateSpec);
}

我首先使用 these instructions 从 0.1.2 切换到 Ember CLI 0.1.5 来升级我的应用程序在 Ember CLI 站点上。然后我尝试将 Ember 升级到 1.9.1,首先将我的 bower.js 中的 Ember 版本更改为 1.9.1,然后遵循 these instructions在 Ember 官方网站上。那没有用,所以我尝试使用 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 问题?

最佳答案

今天我遇到了和你一样的问题,我想从 ember-cli 1.8.1 迁移到 1.9.1。

我按照以下说明解决了它:http://emberjs.com/blog/2014/10/16/handlebars-update.html .
无需执行第 4 步和第 5 步,您可以在执行“bower install”命令之前直接在 bower.json 文件中直接更改 ember 和 Handlebars 的版本。这就是我所做的。

我的项目适用于 ember-cli 0.1.5、ember 1.9.1 和 Handlebars 2.0.0。

也许你在更新过程中遗漏了一些东西。

关于ember.js - 升级 Ember 1.9.1 时的 Handlebars 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27786035/

相关文章:

javascript - EmberJS : Action not found in (generated foo. 索引 Controller )

handlebars.js - 调用特定的 custom_field BigCommerce 模板

ember.js - 渲染模板如何将自定义模板渲染到路由使用的默认模板中定义的导出中。

ember.js - 如何突出显示 hbs 中的给定单词?

javascript - 如何在多对多关系中使用复选框?

javascript - 如何将数据从组件发送到路由 Ember ?

javascript - Emberjs - 在 @each 中改变的模型

javascript - Ember : In my example why does the logic in the router continue even though the function used in it has not completed?

javascript - 为什么 handlebars {{#each}} 在重新排序列表时不重新呈现?

javascript - Ember CLI 将 ES6 文件导入 ember-cli-builds.js