在ember-cli环境中访问窗口对象

时间:2014-09-01 15:48:14

标签: ember.js ember-cli

您好我正在尝试在cordova应用程序中使用torii。我的environment.js文件如下所示。我无法访问窗口文档对象来设置redirectUri。得到错误未定义的变量。如何访问窗口文档对象。

module.exports = function (environment) {
    var ENV = {
        environment: environment,
        baseURL: '/',
        locationType: 'hash',
        EmberENV: {
            FEATURES: {
                // Here you can enable experimental features on an ember canary build
                // e.g. 'with-controller': true
            }
        },
        APP: {
            // Here you can pass flags/options to your application instance
            // when it is created
        },
        torii: {
            providers: {
                'facebook-oauth2': {
                    apiKey: '2xxxxxxxxxx',
                    redirectUri: document.location.href
                },
            }
        },
        cordova: {
            rebuildOnChange: false,
            rebuildAsync: false,
            emulate: false
        }
    };

在我的.jshintrc

"predef": {
    "document": true,
    "window": true,
    "AuthENV": true
  }

所以我假设文档应该是全局可用的,但它不是

1 个答案:

答案 0 :(得分:1)

您可以通过大多数Ember.js代码访问windowdocument对象作为全局变量。

在此特定文件中,您尝试访问用于应用配置的文件。问题是配置是在Node.js构建过程中生成的 - 意味着上下文不一样。

您将在应用的页面源中看到配置是静态的并序列化为页面中的元属性:

<meta name="[your-app]/config/environment" content="your-config-here" />

由于重定向网址会根据用户的位置动态变化,因此更容易“及时”为OAuth流提取此数据。