2013-03-05 63 views
1

我是否應該使用數據結構,如鍵入元素ID的數據對象字典,或者只是將'data-'屬性與所需數據附加到元素上?每個元素需要存儲的屬性數量只有一個或兩個。如何動態存儲有關HTML元素的信息?

是否已經有一個用於JavaScript的Dictionary對象(或可能是TypeScript),或者甚至更好,我可以使用內存數據庫類型結構來管理多個數據結構?

+2

如果只有一個或兩個屬性'數據'屬性應該IMO做。否則,您可以使用jQuery的「數據」。 – elclanrs 2013-03-05 06:07:46

回答

1

如果您只需要存儲幾個值,我會使用data-屬性 - 或jQuery data訪問器。

在JavaScript中的任何物體是一本字典,你可以在打字稿「類型」他們很容易:

interface DictionaryOfStrings { 
    [key: string]: string; 
} 

var a: DictionaryOfStrings; 

a["first"] = "first value"; 
a["second"] = "second value"; 

for (var key in a) { 
    console.log("Value of '" + key + "' is '" + a[key] + "'"); 
} 
0

任何你不能使用像Knockoutjs這樣簡單的數據綁定框架的原因嗎?這是我在這種情況下要做的。

(這是我的答案,而不是發表評論,儘管表述爲一個問題,版主)

0

如果你確實需要在JS字典結構,Linq.js有一個你可以使用或適應。 TS定義文件可在Definitely Typed

interface Dictionary { 
    Add(key, value): void; 
    Get(key): any; 
    Set(key, value): bool; 
    Contains(key): bool; 
    Clear(): void; 
    Remove(key): void; 
    Count(): number; 
    ToEnumerable(): Enumerable; 
} 

您是否需要這樣的事情,還是可以依靠data-參數,將會回落到您的應用程序的具體需求,以及個人的選擇。