Hi,
ich bin gerade dabei via JSLink eine ManagedMetadaten-Spalte zu verändertn. Diese hat eine CustomProperty "TargetLink" die ich dann anstelle des normalen tags als Link rendere. Geht super sowohl mit einfach als auch mehrfach Tags.
Doch leider greift das JSLink nur, wenn ich es in der JSLink Property des WebParts / Views setze.
Wenn ich es auf das Feld selber setzen will (SiteColumn) geht es nicht. Es wird immer wieder scheinbar auf den Standard JSLink-Wert für Taxonomy-Felder zurück gesetzt.
Hier mal ein Code-Ansatz zum Update des Feldes:
var config = {
fieldTitle: "AG",
jsLink: "~sitecollection/_catalogs/masterpage/JSLink/AGLinking.js"
};
var fieldData;
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/fields/getbyinternalnameortitle('" + config.fieldTitle + "')",
type: "GET",
headers: { "accept": "application/json; odata=verbose" },
success: successGet,
error: errorHandler
});
function successGet(data){
fieldData = data;
console.log("Feld-Abruf Erfolg!");
console.log(data);
if(fieldData.d.JSLink.indexOf(config.jsLink) < 0 ){
var newJSLink = fieldData.d.JSLink + (fieldData.d.JSLink.length > 0 ? "|" : "") + config.jsLink;
console.log("JSLink noch nicht gesetzt. Setze JSLink auf: " + newJSLink);
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/fields('" + fieldData.d.Id + "')",
type: "POST",
data: "{ '__metadata': { 'type': 'SP.Field' }, 'JSLink': '" + newJSLink + "' }",
headers: {
"X-RequestDigest": $('#__REQUESTDIGEST').val(),
"content-type": "application/json;odata=verbose",
//"content-length": <length of body data>,
"X-HTTP-Method": "MERGE"
},
success: successUpdate,
error: errorHandler
});
}
}
function successUpdate(data){
console.log("Update erfolgt!");
console.log(data);
}
function errorHandler(msg, status, error){
console.log("Error!!!")
console.log(msg);
}
Den schmeiss ich in meine Browser-Console und der wird komplett ausgeführt mit "Update erfolgt" meldung...
Aber bei erneutem Aufruf wird wieder der alte JSLink-Wert angezeigt.
kann ich einer Taxonomy-SiteColumn kein eigenes JSLink verpassen? muss es zwingend immer an den Views / WebParts passieren?
Danke euch!