AngularJS脚本转向生产

时间:2014-12-12 20:26:13

标签: angularjs

有以下代码:

angular.module('app.services', []).factory('authService', ['SIGN_IN_ENDPOINT', 'SIGN_OUT_ENDPOINT', '$http', '$cookieStore', (SIGN_IN_ENDPOINT, SIGN_OUT_ENDPOINT, $http, $cookieStore) ->
    auth = {}
    auth.signIn = (credentials) ->
        return $http.post(SIGN_IN_ENDPOINT, { user: credentials }).then (response, status) ->
            $cookieStore.put('user', response.data)
    auth.signOut = ->
        return $http.delete(SIGN_OUT_ENDPOINT).then (response, status) ->
            $cookieStore.remove('user')
    auth.currentUser = ->
        $cookieStore.get('user')

    auth
]).value('SIGN_IN_ENDPOINT', 'http://localhost:3000/users/sign_in').value('SIGN_OUT_ENDPOINT', 'http://localhost:3000/users/sign_out').factory('User', ['$resource', 'USERS_ENDPOINT', ($resource, USERS_ENDPOINT) ->
    $resource(USERS_ENDPOINT)
]).value('USERS_ENDPOINT', 'http://localhost:3000/users')

正如您所看到的,我有一些指向我的localhost服务器的链接,但当我将它移动到生产服务器时,它将无法正常工作。我不想硬编码链接,因为生产服务器可能会改变;我只想在此脚本工作时使用链接服务器的当前地址。我该如何更改脚本?提前致谢。

2 个答案:

答案 0 :(得分:0)

由于此数据主要与服务器端相关,因此我喜欢将其内联在模块常量或值中。通过这种方式,您可以将其解释为服务器端并注入主应用程序,并且您不必担心计时问题等。

// inline
angular.module('Preload',[]).contstant('BASE_URL','http://localhost.foo');

...

// inject
var app = angular.module('MyApp', ['Preload']);

答案 1 :(得分:-1)

主机文件中可能未配置本地主机。确保以下条目位于/etc/hosts

127.0.0.1 localhost