5
我有一個表格和文本字段的Tab GUI擴展。我想將表單字段的值保存到ApplicatioData。我正在考慮一個叫做安圭拉方法的「更新」按鈕。如何使用Anguilla JavaScript設置Tridion ApplicationData?
是否有安圭拉的方法來做到這一點?我在安圭拉看不到任何方法。開始代碼:
var c = $display.getItem();
var uri = c.getId();
我有一個表格和文本字段的Tab GUI擴展。我想將表單字段的值保存到ApplicatioData。我正在考慮一個叫做安圭拉方法的「更新」按鈕。如何使用Anguilla JavaScript設置Tridion ApplicationData?
是否有安圭拉的方法來做到這一點?我在安圭拉看不到任何方法。開始代碼:
var c = $display.getItem();
var uri = c.getId();
安圭拉不公開任何(webservice或JavaScript)方法來一般修改ApplicationData。您將不得不提供您自己的服務器端代碼來設置ApplicationData。
所以我最後需要爲了這個,我寫道,設置應用程序數據的簡單的WCF Web服務:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
[ServiceContract(Namespace= "ExtensionsModel.Services")]
public class ExtensionsService
{
[OperationContract]
[WebInvoke(Method = "POST",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json)]
public void SetEnabled(string[] itemIDs, bool enabled)
{
using (var client = TridionCoreService.GetSessionAwareClient())
{
var appdata = new ApplicationData();
appdata.ApplicationId = "ext:IsEnabled";
appdata.Data = new ASCIIEncoding().GetBytes(enabled ? bool.TrueString : bool.FalseString);
foreach (var itemID in itemIDs)
{
client.SaveApplicationData(itemID, new[] {appdata});
}
}
}
}
有線起來我的模型的配置文件中:
<?xml version="1.0" encoding="utf-8" ?>
<Configuration> <!-- namespaces removed for readability -->
<resources cache="true">
<cfg:filters/>
<cfg:groups>
<cfg:group name="Extensions.Models">
<cfg:domainmodel name="Extensions.Models">
<cfg:services>
<cfg:service type="wcf">Services/ExtensionsService.svc</cfg:service>
</cfg:services>
</cfg:domainmodel>
</cfg:group>
</cfg:groups>
...
而且然後打電話給我的網絡方法command._execute
Extensions.Commands.DisableExtension.prototype._execute = function (selection) {
ExtensionsModel.Services.ExtensionsService.SetEnabled(selection.getItems(), false);
};
優秀的例子!我真的很喜歡使用模型的乾淨方法 - 這讓我感到困惑,現在很清楚。謝謝! – robrtc
問題:cfg:service type屬性可能有其他值嗎? – robrtc
我不知道XSD是否幫助我發現了燈光。但我會誠實的說:我懷疑它是否適用於除WCF服務之外的其他任何東西。 –