2016-04-15 44 views
0

我是JS的新手。在我正在擴展的應用程序中,我有不同的意見。我一個,我想看到完整的產品名稱,而另一個只是他們的縮寫。在javascript/jquery中使用產品名稱及其縮寫列表

我不想對它們進行硬編碼,而是將它們寫入文件中。什麼是完成這個的好方法?我想到了創建一個JSON/XML /文本這將是這個樣子

'product name 1' : 'abbr1' 
'product name 2' : 'abbr2' 
[...] 

文件,但我需要的結果在兩個方向上工作,像無論是傳球的縮寫,獲得全名或其他方式輪。我可以使用JavaScript和jQuery。

編輯:我不想對數據進行硬編碼,因爲產品可能會發生變化,所以我不會真的喜歡它們在源代碼中。我認爲這種經常改變的東西應該存儲在源代碼之外,這樣可以更容易地進行更改。

+1

爲了什麼目的,你想寫它到一個文件? –

+0

產品可能會發生變化,所以我不會真的喜歡它們在源代碼中。我認爲這種經常改變的東西應該存儲在源代碼之外,這樣可以更容易地進行更改。 –

+1

這是所有客戶端JavaScript嗎? –

回答

1

你可以在一個JSON文件中創建產品的行列。喜歡的東西:

[{name: "Product 1", abbr: "pr1"}, {name: "Product 2", abbr: "pr2}...] 

那麼你可以使用jQuery's getJSON方法,例如:

$.getJSON("ajax/test.json", function(json) { 
    // do something with the json 
}); 

不過,他這樣說。我沒有看到這種方法帶來的好處,因爲JSON也會被硬編碼。

編輯:其實我看到一個好處。這至少可以將數據源與數據檢索分離開來。

+0

謝謝,我會用它。 –

+1

請注意,如果您不熟悉它,請閱讀異步查詢。 getJSON函數是異步的,這意味着在JSON上執行的函數不保證以順序方式發生。 –

+0

感謝您的領導! –

1

把你自己的產品數據在全局數組:

<script> 
    function product(name, code) { 
    this.name = name; 
    this.code = code; 
    }; 
    var productArray = [ new product("Apple", "a"), new product("Orange", "o") ]; 

    // user array 
    for (var i = 0; i < productArray.length; ++i) 
    if (productArray[i].name == "Apple") 
     console.log(productArray[i].code); 
</script> 
+0

那麼,正如我所說我是新來的JS(和一般的腳本語言),所以我是誰來判斷..但沒有一個更優雅的方式來實現這一目標?這些產品可能會發生變化,我認爲強迫這類事情的源代碼操作是不錯的風格。 –

+0

@JacobS是的,它可以肯定地改變。因爲您不需要「硬編碼」數組,而是使用服務器端編寫它。你使用的是什麼服務器語言? (php,asp.net,JSP ...)? –

+0

嘿,謝謝你的幫助 - 我會用有用的喇嘛的方法壽。 –

相關問題