在列表视图中从Tridion Anguilla获取WebDavURL
我想使用Angulla作为GUI扩展获取listview中某个项目的WebDavURL属性 我有以下代码,但未返回WebDavURL:在列表视图中从Tridion Anguilla获取WebDavURL,tridion,tridion-2011,Tridion,Tridion 2011,我想使用Angulla作为GUI扩展获取listview中某个项目的WebDavURL属性 我有以下代码,但未返回WebDavURL: selectedItem = selection.getItems()[0]; var item = $models.getItem(selectedItem); var webDavUrl = item.getInfo().webDavUrl(); 您必须实际加载webDavUrl。。。item.loadWebDavUrl()。您必须设置一个事件处理程序,以
selectedItem = selection.getItems()[0];
var item = $models.getItem(selectedItem);
var webDavUrl = item.getInfo().webDavUrl();
您必须实际加载webDavUrl。。。item.loadWebDavUrl()。您必须设置一个事件处理程序,以便在WebDav URL作为异步方法加载后通知。下面是一个示例,其中包括加载和设置事件处理程序:
var item = $models.getItem(selectedItem),
webDavUrl = item.getWebDavUrl();
if (!webDavUrl) {
// WebDavUrl for cached item hasn't been loaded yet, so lets load it.
$evt.addEventHandler(item, "loadwebdavurl", function (event) {
webDavUrl = item.getWebDavUrl(); // also could do event.source.getWebDavUrl()
});
item.loadWebDavUrl();
}
希望有帮助 加载webdavurl后,是否值得付出额外的努力来删除事件处理程序?或者在这种情况下没有必要这样做吗?嗨,Frank,我认为这绝对是值得的,因为项目的事件处理程序也会像其他属性一样被缓存。如果在缓存范围内的某个地方(我相信在同一窗口中运行的任何扩展?)打开了该项,并且加载了webdav url,而没有检查它是否已经加载,那么您的事件处理程序也将在那里执行。