Этот параметр ожидает конструктор function вместо объекта, который вы передали.Возможно, сработает следующее:
dndController: function(arg, params){
return new dijit.tree.dndSource(
arg, // don't mess up with the first parameter
dojo.mixin({}, params, {copyOnly:true}))
//create a copy of the params object, but set copyOnly to true
}
Некоторое объяснение:
На самом деле я ничего не знаю о перетаскивании на деревьях.Все, что я сделал, это посмотрел на исходный код Tree (его на dijit / Tree.js или что-то в этом роде), чтобы узнать, где используется dndController.С этого момента я мог выяснить, что должна быть функция, которая может получить эти два параметра (или строку, представляющую путь к такой функции ...).Используемая функция dijit.tree.dndSource, которую я только что скопировал из вашего вопроса, надеясь, что это сработает.
Функция dojo.mixin смешивает все объекты в своих 2-х, 3-х, ... аргументахв первый аргумент.Используя новый пустой объект в качестве «принимающего» объекта, мы получаем аккуратный способ сделать поверхностную копию params, установив copyOnly без изменения исходного объекта params.