diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/dropdown/dropdown.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/dropdown/dropdown.controller.js
index 579da61857..ce75a5ab04 100644
--- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/dropdown/dropdown.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/dropdown/dropdown.controller.js
@@ -8,12 +8,14 @@ angular.module("umbraco").controller("Umbraco.Editors.DropdownController",
keyName: "alias",
valueName: "name"
};
-
+
//map the user config
angular.extend(config, $scope.model.config);
//map back to the model
$scope.model.config = config;
+ $scope.selectExpression = "e." + config.keyName + " as e." + config.valueName + " for e in model.config.items";
+
//now we need to format the items in the array because we always want to have a dictionary
for (var i = 0; i < $scope.model.config.items.length; i++) {
if (angular.isString($scope.model.config.items[i])) {
diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/dropdown/dropdown.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/dropdown/dropdown.html
index 5249d017e2..a4e7079c1b 100644
--- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/dropdown/dropdown.html
+++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/dropdown/dropdown.html
@@ -1,7 +1,6 @@
+ ng-options="{{selectExpression}}">
\ No newline at end of file
diff --git a/src/Umbraco.Web/PropertyEditors/DropDownPreValueEditor.cs b/src/Umbraco.Web/PropertyEditors/DropDownPreValueEditor.cs
index 7d04f1ad9a..1db5cc9c3d 100644
--- a/src/Umbraco.Web/PropertyEditors/DropDownPreValueEditor.cs
+++ b/src/Umbraco.Web/PropertyEditors/DropDownPreValueEditor.cs
@@ -14,7 +14,7 @@ namespace Umbraco.Web.PropertyEditors
{
///
- /// The editor is expecting a json array for a field with a key named "temp" so we need to format the persisted values
+ /// The editor is expecting a json array for a field with a key named "items" so we need to format the persisted values
/// to this format to be used in the editor.
///
///
@@ -24,9 +24,8 @@ namespace Umbraco.Web.PropertyEditors
{
var dictionary = PreValueCollection.AsDictionary(persistedPreVals);
var arrayOfVals = dictionary.Select(item => item.Value).ToList();
- //var json = JsonConvert.SerializeObject(arrayOfVals);
- return new Dictionary { { "temp", arrayOfVals } };
+ return new Dictionary { { "items", arrayOfVals } };
}
///
@@ -42,7 +41,7 @@ namespace Umbraco.Web.PropertyEditors
///
public override IDictionary FormatDataForPersistence(IDictionary editorValue, PreValueCollection currentValue)
{
- var val = editorValue["temp"] as JArray;
+ var val = editorValue["items"] as JArray;
var result = new Dictionary();
if (val == null)
diff --git a/src/Umbraco.Web/PropertyEditors/DropDownPropertyEditor.cs b/src/Umbraco.Web/PropertyEditors/DropDownPropertyEditor.cs
index f668dcd9cf..6f8a8429a6 100644
--- a/src/Umbraco.Web/PropertyEditors/DropDownPropertyEditor.cs
+++ b/src/Umbraco.Web/PropertyEditors/DropDownPropertyEditor.cs
@@ -17,10 +17,13 @@ namespace Umbraco.Web.PropertyEditors
new PreValueField
{
Description = "Add and remove values for the drop down list",
- //we're going to call this 'temp' because we are going to override the
+ //we're going to call this 'items' because we are going to override the
//serialization of the pre-values to ensure that each one gets saved with it's own key
//(new db row per pre-value, thus to maintain backwards compatibility)
- Key = "temp",
+
+ //It's also important to note that by default the dropdown angular controller is expecting the
+ // config options to come in with a property called 'items'
+ Key = "items",
Name = ui.Text("editdatatype", "addPrevalue"),
View = "Views/PropertyEditors/dropdown/dropdown.prevalue.html"
}