我升级到Ember 1.18,我得到了:
DEPRECATION: Using currentWhen with {{link-to}} is deprecated in favor of `current-when`.
at Ember.LinkView.EmberComponent.extend.init (http://example.com:8000/static/assets/vendor.js:33811:15)
at apply (http://example.com:8000/static/assets/vendor.js:32885:32)
at superWrapper [as init] (http://example.com:8000/static/assets/vendor.js:32459:15)
at apply (http://example.com:8000/static/assets/vendor.js:32885:32)
at new Class (http://example.com:8000/static/assets/vendor.js:47485:9)
at Function.Mixin.create.create (http://example.com:8000/static/assets/vendor.js:47943:16)
at CoreView.extend.createChildView (http://example.com:8000/static/assets/vendor.js:56278:23)
at Object.merge.appendChild (http://example.com:8000/static/assets/vendor.js:54369:26)
at CoreView.extend.appendChild (http://example.com:8000/static/assets/vendor.js:56161:34)
回溯都不是我的代码,我主要使用{link-to-animated}
(明确没有currentWhen
)。
如何找出有问题的代码?
答案 0 :(得分:3)
弃用通知并未显示代码追溯,因为问题不在您的代码中。 :)看看ember-animated-outlet.js,您会发现currentWhen
已在内部使用。
有一些肮脏的伎俩来遏制弃用警告,但我建议只是向回购提交一个拉动请求以改变它。这应该是一个相当容易的解决方案。
编辑:似乎有already a pull request for that,但它还没有被合并。关于那些肮脏的技巧......如果您被弃用警告所误导,您可以始终覆盖Ember.deprecate
。在运行应用程序代码之前将其放在某处(可能在供应商脚本中):
var oldDeprecate = Ember.deprecate;
Ember.deprecate = function(message) {
if (message.indexOf('currentWhen') >= 0) {
return;
}
return oldDeprecate.apply(this, arguments);
};