9

更新到 EmberJS 0.9.8.1 后,我现在收到两个警告:

WARNING: Computed properties will soon be cacheable by default. To enable this
in your app, set `ENV.CP_DEFAULT_CACHEABLE = true`. 

和:

WARNING: The way that the {{view}} helper affects templates is about to change.
...SNIP...  by setting `ENV.VIEW_PRESERVES_CONTEXT = true`.

这似乎是一个愚蠢的问题,但我该如何设置这些 ENV 变量呢?我尝试用几种不同的方式设置它们,但没有一种方法会使警告消息消失,而且我的应用程序中也没有任何中断。这是否意味着我很清楚?或者这是否意味着我没有正确设置 ENV 变量?

  1. window.ENV不存在,因此实际上执行 'ENV.CP_DEFAULT_CACHEABLE = true' 不起作用
  2. Ember.ENV存在,但是是一个空对象,并且没有 Ember.ENV.set 方法。所以我尝试做 Ember.ENV.CP_DEFAULT_CACHEABLE = true。这是设置 ENV 的正确方法吗?然而,它对 Ember.CP_DEFAULT_CACHEABLE 没有影响,所以这似乎不对。
  3. Ember.CP_DEFAULT_CACHEABLE存在,所以我尝试过 Ember.CP_DEFAULT_CACHEABLE = true,但这对 Ember.ENV.CP_DEFAULT_CACHEABLE 没有影响。
  4. 我也尝试过 Ember.set('CP_DEFAULT_CACHEABLE', true)。

其中哪一项(如果有)是回应这些警告的正确方法?当您根据他们的请求设置事情时,他们不只是取消吗?警告可能应该更好地记录这一点,或者提供您设置它们的反馈。

4

1 回答 1

15

您必须确保ENV在加载 Ember.js 之前设置变量(在ember-metal/lib/core.js中定义),请参阅http://jsfiddle.net/pangratz666/jweyf/

<!doctype html>
<body>
    <script type="text/javascript" >
        ENV = {
            CP_DEFAULT_CACHEABLE: true,
            VIEW_PRESERVES_CONTEXT: true
        };
    </script>
    <script src="http://code.jquery.com/jquery-1.7.2.js"></script>
    <script src="https://github.com/downloads/emberjs/ember.js/ember-0.9.8.1.js"></script>
    ...
</body>

​</p>

于 2012-05-31T19:01:26.053 回答