我是否應該使用數據結構,如鍵入元素ID的數據對象字典,或者只是將'data-'屬性與所需數據附加到元素上?每個元素需要存儲的屬性數量只有一個或兩個。如何動態存儲有關HTML元素的信息?
是否已經有一個用於JavaScript的Dictionary對象(或可能是TypeScript),或者甚至更好,我可以使用內存數據庫類型結構來管理多個數據結構?
我是否應該使用數據結構,如鍵入元素ID的數據對象字典,或者只是將'data-'屬性與所需數據附加到元素上?每個元素需要存儲的屬性數量只有一個或兩個。如何動態存儲有關HTML元素的信息?
是否已經有一個用於JavaScript的Dictionary對象(或可能是TypeScript),或者甚至更好,我可以使用內存數據庫類型結構來管理多個數據結構?
如果您只需要存儲幾個值,我會使用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] + "'");
}
任何你不能使用像Knockoutjs這樣簡單的數據綁定框架的原因嗎?這是我在這種情況下要做的。
(這是我的答案,而不是發表評論,儘管表述爲一個問題,版主)
如果你確實需要在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-
參數,將會回落到您的應用程序的具體需求,以及個人的選擇。
如果只有一個或兩個屬性'數據'屬性應該IMO做。否則,您可以使用jQuery的「數據」。 – elclanrs 2013-03-05 06:07:46