2012-05-31 54 views
9

更新到EmberJS 0.9.8.1之后,我现在得到两个警告:如何在EmberJS中设置“ENV”变量?

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 =真正的' 不起作用
  2. Ember.ENV存在,但空的对象,并没有灰烬。 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)。

哪些(如果有的话)这些是正确的方式来回应这些警告?当你根据他们的请求设置事物时,他们不只是消失吗?警告应该更好地记录这些信息,或提供您设置的反馈。

回答

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> 

+1

谢谢,这帮助了我。 –