Anguilla nicht aussetzen jedes (Webservice oder JavaScript) Methoden, um allgemein Anwendungsdaten zu ändern. Sie müssen Ihren eigenen serverseitigen Code angeben, um die Anwendungsdaten festzulegen.
Also in meiner letzten Notwendigkeit dafür habe ich einen einfach WCF-Webdienst, den die Anwendung Datensätze:
<?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>
...
Und:
[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});
}
}
}
}
es in der Konfigurationsdatei von meinem Modell verdrahtet Rufen Sie dann diese Web-Methode von meinem command._execute
Extensions.Commands.DisableExtension.prototype._execute = function (selection) {
ExtensionsModel.Services.ExtensionsService.SetEnabled(selection.getItems(), false);
};
Ausgezeichnetes Beispiel! Ich mag den sauberen Ansatz, das Modell zu benutzen - das ist etwas, das mich verwirrt hat und jetzt klar ist. Vielen Dank! – robrtc
Frage: Welche anderen Werte sind für das Attribut cfg: service type möglich? – robrtc
Ich habe keine Ahnung und die Erforschung der XSD hilft mir nicht, ein Licht zu vergießen. Aber ich bin ehrlich: Ich bezweifle, dass es mit etwas anderem als den WCF-Diensten arbeiten soll. –