2013-11-22 97 views
3

目前我有一種過濾器形式。我回國這種形式的序列化版本,用下面的代碼:使用JQuery for Flask創建動態URL

$.fn.serializeObject = function() { 
     var o = {}; 
     var a = this.serializeArray(); 
     $.each(a, function() { 
      if (o[this.name]) { 
       if (!o[this.name].push) { 
        o[this.name] = [o[this.name]]; 
       } 
       o[this.name].push(this.value || ''); 
      } else { 
       o[this.name] = this.value || ''; 
      } 
     }); 
     return o; 
    }; 

所以通常當我用瓶,我想創建一個動態的URL,我不喜歡這樣的模板:

<a href="{{ url_for('url_base', selector='{0}'.format(data[]))}}">{{ data[0] }}, {{ data[1] }}</a> 

或類似的東西。但是,現在,我不能在HTML中編寫它,因爲我正在用JQuery進行計算。

的JSON我會是這個樣子:

{"first_attr": [1, 54, "pie"], "second_attr": ["tree", "foo"]} 

而且我想通過它的結構類似於瓶,因爲它會進入該採取**kwargs一些Python功能。

我如何使用JQuery編輯元素的href,讓我們說一個<button>,這樣它就可以向瓶子發出AJAX GET請求。它可以通過設置href如url_for或者它可以通過文字AJAX請求來完成。無論哪種方式,但需要類似url_for(base, selector),使其發生,我認爲

+0

不喜歡我的tl; dr參考嗎? :) –

+1

我認爲這很聰明,fwiw。 – VooDooNOFX

+0

所以我不明白,你正在尋找在jQuery的一面創建一個網址。我現在刪除了我的答案,因爲我沒有時間更新我的錯誤答案。當我有一個經過測試的工作解決方案時,我會回過頭來回答這個問題。 – AlexLordThorsen

回答

0

所以,我結束了使用這entension。它允許你爲瓶子生成URL客戶端。

你必須做什麼:

git clone https://github.com/dantezhu/flask_util_js 

找到flask_util_js.py並在.html模板把它貼在你的項目

某處,加上{{ fujs.js }}包括代碼

然後,您可以做這個地方:

function onClicked(key) { 
    var newURL = flask_util.url_for('your_base', {your_selector: key}); 
    window.location = newURL; 
} 

那樣容易