2012-02-23 3 views
0

Я хотел бы сделать что-то вроде этого:dojo.place как передать параметр без окружающего HTML?

dojo.place(this.message.subject, this.apSubject); 

Но бросить исключение в Dojo 1.7 (я новичок в додзё, так что я не знаю, если та же самая проблема находится в более старых версиях)

Чтобы получить его работу я сделал:

dojo.place('<span>' + this.message.subject + '</span>', this.apSubject); 

похоже Dojo разобрать первый параметр dojo.place и если нет HTML это бросить исключение.

Как использовать его без пролетов?

ответ

1

Проверьте docs, в частности, описание того, что получает первый аргумент:

dojo.place (узел, refNode, пос)

узел

может быть строкой или узел DOM. Если это строка, начинающаяся с «<», предполагается, что это будет фрагмент HTML, который будет создан. В противном случае предполагается, что он является идентификатором узла DOM.

Таким образом, одна вещь, вы можете сделать, это создать текстовый узел с текстом вы хотите

dojo.place(document.createTextNode(this.message.subject), this.apSubject) 

И еще одна вещь, вы можете попробовать бы установка innerHTML вместо использования dojo.place:

this.apSubject.innerHTML = this.message.subject; 

КСТАТИ по моему скромному мнению, dojo.place это нормально вид раздражает использовать. Однако, поскольку я не часто делаю такие манипуляции с DOM, я не знаю, какие альтернативы люди предпочитают использовать.