8
votes

Quelle est la différence entre "Dart: HTML" et "DART: DOM"?

Je commence par certains des exemples de dard. Ensuite, je voulais interroger le Dom avec Document.Query ('# SIONID') Comme décrit Ici , mais il semble qu'il n'y avait pas de méthode de requête dans le document. Créer également un nouvel élément par `nouvel élément.tag ('P') ne fonctionne pas.

Puis je trouve que cela fonctionnera, lorsque je modifierai le package importé de dart: DOM sur dart: html . Mais en utilisant les deux des deux me donne un tas de définition en double duplicate de _xyz .

Alors je me demande:

  1. Quelle est la différence entre dart: html et dart: DOM package
  2. lequel dois-je utiliser
  3. Pourquoi ne puis-je pas utiliser à la fois

0 commentaires

4 Réponses :


10
votes

Répondre à un peu hors de l'ordre

  1. lequel dois-je utiliser : vous devez utiliser dart: html il fournit l'abstraction la plus propre sur le DOM.

  2. Pourquoi je ne peux pas utiliser à la fois : il ne doit pas être strictement nécessaire, mais vous pouvez réellement arriver au sous-jacent DART: DOM Mise en œuvre de DART : HTML à l'aide d'un hachoir sale décrit Ici . La solution meilleure et plus propre consiste à utiliser la capacité de DART à renommer les importations, à savoir #import ('dart: dom', préfixe: 'DOM'); comme décrit par @munificent ci-dessous.

  3. Quel est le différent entre Dart: HTML et DART: Paquet DOM . J'ai tendance à penser à la différence entre eux aussi semblable à JQuery ( Dart: HTML ) VS JS DOM Manipulation ( DART: DOM ).

    L'équipe DART essaye difficile de faire le dart: HTML API aussi facile et sans surprise (dans le bon sens) à utiliser car nous sommes habitués à partir de bibliothèques telles que JQuery (Dom Manipulement) , Tree.js (programmation WebLL) et D3 (dessin SVG). En outre, ils essaient également de suivre un style API dans tous ces domaines de fonctionnalité afin que l'API SVG ou WebGL utilise des constructions similaires comme l'API DOM, garantissant ainsi que toutes les pièces jouent bien ensemble.

    Mise à jour : à compter de mai 2012 DART: DOM est désormais obsolète et sera supprimé.


0 commentaires

7
votes

Lars a fait un excellent travail avec votre question. Je vais simplement ajouter à:

Pourquoi je ne peux pas utiliser à la fois p> BlockQuote>

Vous pouvez, en fait. Le problème est que les deux bibliothèques utilisent les mêmes noms pour quelques éléments (principalement fenêtre code>). Lorsque vous importez les deux, ces noms en collision, que Dart ne permet pas. Pour résoudre cela, vous pouvez importer l'un d'entre eux avec un préfixe: p> xxx pré>

puis, lorsque vous vous référez à un nom importé de dart: html code>, Vous utilisez simplement le nom. Lorsque vous voulez un DOM One, vous le préfixez: P>

window     // dart:html window
dom.window // dart:dom window


0 commentaires

0
votes

La réponse courte pour ajouter aux excellentes réponses déjà données: utilisez Dart: HTML quand vous le pouvez. Utilisez DART: DOM lorsque vous devez (et entrez un bogue si vous devez).


0 commentaires

6
votes

Une mise à jour de toutes les réponses et rend probablement cette question n'est plus applicable est que DART: DOM a été obsolète.

voir Ce message sur le site Web de Dartlang.


0 commentaires