在 Ember 2.0 - Rails 4 上弃用了 {{view}}
Deprecated {{view}} on Ember 2.0 - Rails 4
我最近更新了一个 Rails 3.2
到 Rails 4.1.0
我有 ember.js
用于数据绑定。
这是我的Gemfile
source 'https://rubygems.org'
#gem 'rails', '3.2.12'
gem 'rails', '4.1.0'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails'
gem 'coffee-rails'
gem 'zurb-foundation'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
gem 'uglifier'
end
gem 'jquery-rails'
group :development do
gem "better_errors"
gem 'annotate'
gem 'pry'
gem 'sqlite3'
end
group :production do
gem 'pg'
end
gem 'ember-rails'
gem 'ember-source'
gem 'handlebars-source'
gem 'active_model_serializers'
gem 'filepicker-rails'
gem 'execjs','2.5.2'
gem 'therubyracer'
gem 'thin'
gem 'unicorn'
gem 'capistrano'
gem 'simple_form'
gem 'devise'
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby'
# To use Jbuilder templates for JSON
# gem 'jbuilder'
# Use unicorn as the app server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'debugger'
# File upload extension
gem "paperclip"
# Admin
gem 'activeadmin', '1.0.0.pre1'
我以前从未遇到过这个弃用问题,当时是 Rails 3.2
现在每次我 运行 应用程序都会抛出此错误:
Barber::PrecompilerError at /
. Compiler said: Error: Assertion Failed: Using `{{view}}` or any path based on it ('_lineItem' @ L1:C0) has been removed in Ember 2.0
我对 ember 还很陌生,所以我对这个有点迷茫。
升级我的 Rails 版本后才发生。
这是有问题的文件:
_lineitem.hbs
{{#view 'lineItem' content='lineItem' class='row collapse'}}
<div class="name columns">
<h6>{{lineItem.name}}</h6>
</div>
<div class="qty text-right columns">
<h6>qty: {{lineItem.quantity}}</h6>
</div>
{{#if editing}}
<div class="taxable columns text-right">
taxable {{view 'checkbox' checked="lineItem.product.taxable"}}
</div>
{{/if}}
<div class="line-total columns">
<h6>
{{#if editing}}
{{input value="lineItem.priceCents"}}
{{else}}
<span class='money'>
${{money-display lineItem.lineItemTotalCents}}
</span>
{{/if}}
</h6>
</div>
<div class="edit columns text-right">
<button class="button small"{{action 'removeLineItem' lineItem target="view"}}>-</button>
</div>
{{/view}}
可能还有一些其他文件有这种声明{{view}}
拜托,有什么想法吗?
提前致谢!
由于您使用的是 Ember 2.0,我建议将您的视图转换为组件文件夹中名为 line-item.hbs 的组件,该组件具有以下内容:
<div class="name columns">
<h6>{{lineItem.name}}</h6>
</div>
<div class="qty text-right columns">
<h6>qty: {{lineItem.quantity}}</h6>
</div>
{{#if editing}}
<div class="taxable columns text-right">
taxable {{view 'checkbox' checked="lineItem.product.taxable"}}
</div>
{{/if}}
<div class="line-total columns">
<h6>
{{#if editing}}
{{input value="lineItem.priceCents"}}
{{else}}
<span class='money'>
${{money-display lineItem.lineItemTotalCents}}
</span>
{{/if}}
</h6>
</div>
<div class="edit columns text-right">
<button class="button small"{{action 'removeLineItem' lineItem target="view"}}>-</button>
</div>
然后在你的模板文件中应该使用 lineItem
{{line-item item=lineItem}}
您可以通过 ember 插件或配置值打开旧版视图。
https://github.com/emberjs/ember-legacy-views
插件设置了一些配置值和视图将会返回。
然后你有时间迁移到组件。
同样的方法适用于遗留控制器(ArrayController 等)
我最近更新了一个 Rails 3.2
到 Rails 4.1.0
我有 ember.js
用于数据绑定。
这是我的Gemfile
source 'https://rubygems.org'
#gem 'rails', '3.2.12'
gem 'rails', '4.1.0'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails'
gem 'coffee-rails'
gem 'zurb-foundation'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
gem 'uglifier'
end
gem 'jquery-rails'
group :development do
gem "better_errors"
gem 'annotate'
gem 'pry'
gem 'sqlite3'
end
group :production do
gem 'pg'
end
gem 'ember-rails'
gem 'ember-source'
gem 'handlebars-source'
gem 'active_model_serializers'
gem 'filepicker-rails'
gem 'execjs','2.5.2'
gem 'therubyracer'
gem 'thin'
gem 'unicorn'
gem 'capistrano'
gem 'simple_form'
gem 'devise'
# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby'
# To use Jbuilder templates for JSON
# gem 'jbuilder'
# Use unicorn as the app server
# gem 'unicorn'
# Deploy with Capistrano
# gem 'capistrano'
# To use debugger
# gem 'debugger'
# File upload extension
gem "paperclip"
# Admin
gem 'activeadmin', '1.0.0.pre1'
我以前从未遇到过这个弃用问题,当时是 Rails 3.2
现在每次我 运行 应用程序都会抛出此错误:
Barber::PrecompilerError at /
. Compiler said: Error: Assertion Failed: Using `{{view}}` or any path based on it ('_lineItem' @ L1:C0) has been removed in Ember 2.0
我对 ember 还很陌生,所以我对这个有点迷茫。
升级我的 Rails 版本后才发生。
这是有问题的文件:
_lineitem.hbs
{{#view 'lineItem' content='lineItem' class='row collapse'}}
<div class="name columns">
<h6>{{lineItem.name}}</h6>
</div>
<div class="qty text-right columns">
<h6>qty: {{lineItem.quantity}}</h6>
</div>
{{#if editing}}
<div class="taxable columns text-right">
taxable {{view 'checkbox' checked="lineItem.product.taxable"}}
</div>
{{/if}}
<div class="line-total columns">
<h6>
{{#if editing}}
{{input value="lineItem.priceCents"}}
{{else}}
<span class='money'>
${{money-display lineItem.lineItemTotalCents}}
</span>
{{/if}}
</h6>
</div>
<div class="edit columns text-right">
<button class="button small"{{action 'removeLineItem' lineItem target="view"}}>-</button>
</div>
{{/view}}
可能还有一些其他文件有这种声明{{view}}
拜托,有什么想法吗?
提前致谢!
由于您使用的是 Ember 2.0,我建议将您的视图转换为组件文件夹中名为 line-item.hbs 的组件,该组件具有以下内容:
<div class="name columns">
<h6>{{lineItem.name}}</h6>
</div>
<div class="qty text-right columns">
<h6>qty: {{lineItem.quantity}}</h6>
</div>
{{#if editing}}
<div class="taxable columns text-right">
taxable {{view 'checkbox' checked="lineItem.product.taxable"}}
</div>
{{/if}}
<div class="line-total columns">
<h6>
{{#if editing}}
{{input value="lineItem.priceCents"}}
{{else}}
<span class='money'>
${{money-display lineItem.lineItemTotalCents}}
</span>
{{/if}}
</h6>
</div>
<div class="edit columns text-right">
<button class="button small"{{action 'removeLineItem' lineItem target="view"}}>-</button>
</div>
然后在你的模板文件中应该使用 lineItem
{{line-item item=lineItem}}
您可以通过 ember 插件或配置值打开旧版视图。
https://github.com/emberjs/ember-legacy-views
插件设置了一些配置值和视图将会返回。 然后你有时间迁移到组件。
同样的方法适用于遗留控制器(ArrayController 等)