Last active
September 8, 2023 08:18
SF_11.0, SF_11.1, SF_11.2, SF_12.0, SF_12.1, SF_12.2, SF_13.0, SF_13.1, SF_13.2, SF_13.3, SF_14.0, SF_14.1, SF_14.2, SF_14.3, SF_14.4 - https://docs.sitefinity.com/feather-use-content-item-selectors
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function () { | |
// declare dependency on the sfSelectors module | |
angular.module('designer').requires.push('sfSelectors'); | |
angular.module('designer').controller('SimpleSelectorCtrl', ['$scope', 'propertyService', function ($scope, propertyService) { | |
$scope.feedback.showLoadingIndicator = true; | |
// initialize the news selector model | |
$scope.newsSelector = { | |
selectedItemId: [], | |
selectedItem: [] | |
}; | |
// whenever newsSelector.selectedItemId changes, bind the new value to the widget controller property | |
$scope.$watch( | |
'newsSelector.selectedItemId', | |
function (newSelectedItemId, oldSelectedItemId) { | |
if (newSelectedItemId !== oldSelectedItemId) { | |
if (newSelectedItemId) { | |
$scope.properties.SerializedSelectedItemId.PropertyValue = newSelectedItemId; | |
} | |
} | |
}, | |
true | |
); | |
// whenever newsSelector.selectedItem changes, bind the new value to the widget controller property | |
$scope.$watch( | |
'newsSelector.selectedItem', | |
function (newSelectedItem, oldSelectedItem) { | |
if (newSelectedItem !== oldSelectedItem) { | |
if (newSelectedItem) { | |
$scope.properties.SerializedSelectedItem.PropertyValue = JSON.stringify(newSelectedItem); | |
} | |
} | |
}, | |
true | |
); | |
propertyService.get() | |
.then(function (data) { | |
if (data) { | |
$scope.properties = propertyService.toAssociativeArray(data.Items); | |
// copy the selected item id so that the selector can initialize with the selected items | |
var selectedItemId = $scope.properties.SerializedSelectedItemId.PropertyValue || null; | |
if (selectedItemId) { | |
$scope.newsSelector.selectedItemId = selectedItemId; | |
} | |
} | |
}, | |
function (data) { | |
$scope.feedback.showError = true; | |
if (data) | |
$scope.feedback.errorMessage = data.Detail; | |
}) | |
.finally(function () { | |
$scope.feedback.showLoadingIndicator = false; | |
}); | |
}]); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment