2013-06-19 48 views
0

有沒有辦法在客戶端從angular.js的flask.session設置的會話集中訪問?我試圖在瓶子的同一個調用中傳遞數據並存儲到會話中,並能夠在流程中稍後從角度讀取它。閱讀flask.session with angularjs

我沒有使用模板系統。對於這些頁面,我只提供索引文件,然後使用Angular來完成其餘的工作。這是我的呼籲索引文件:

@app.route("/") 
def index(): 
    return make_response(open('templates/index.html').read()) 
+0

爲什麼不使用'render_template'? –

回答

1

如果您需要訪問它在你的模板,請記住,模板have access to session默認情況下在燒瓶中。

<script> 
var someConfigurationObject = { 
    someKey: "{{session["somevalue"]}}", 
    other: "keys", 
    "go": "here" 
}; 
</script> 

如果您是通過AJAX發送數據來回調用,你可以簡單地將其包含在你的迴應:

return jsonify(data=your_data, session_info=session["special_key"]) 
+0

我從來沒有渲染過一個模板......我主要使用flask來提供索引文件,然後接受api請求。 –

+0

你如何提供索引文件?你可以發表一些代碼嗎? – codegeek

+0

請參閱編輯我如何爲索引文件提供服務。 –

0

作出角服務從您的服務器來讀取。

app.factory('Session', ['$http', function ($http) { 
    return { 
    getSessionData: function (callback) { 
     $http.get('/_session?key=x').success(function (res) { 
     callback(res) 
     }) 
    } 
    } 
}]) 

返回從瓶中值:

@app.route('/_session') 
def get_from_session(): 
    key = request.params['key'] 
    return session.get(key) 

使用它的控制器:

app.controller(MainCtrl, ['$scope', 'Session', function ($scope, Session) { 
    $scope.x = null 
    Session.get(function (res) { 
    $scope.x = res 
    }) 
}])