如何在EmberJS中设置“ENV”变量?

时间:2012-05-31 18:47:52

标签: ember.js

更新到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)。
  5. 哪些(如果有的话)是回应这些警告的正确方法?当你根据他们的请求设置东西时,他们不仅会消失吗?警告可能应该更好地记录,或提供您设置的反馈。

1 个答案:

答案 0 :(得分:15)

您必须确保在加载Ember.js之前设置了ENV变量(在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>

相关问题