Custom Property Views

You aren't limited in using the built-in property views (like checkbox, date, datetime, ...) but you can easily plug in your own custom ones.

It's just a matter of pointing the UIOMaticField attribute to the view location

[UIOMaticField("Owner", "Select the owner of the dog", View = "~/App_Plugins/Example/picker.person.html")]

API Controller

public class ExampleApiController: UmbracoAuthorizedJsonController
    public IEnumerable<dynamic> GetAll()
        var query = new Sql().Select("*").From("People");
        return DatabaseContext.Database.Fetch<dynamic>(query);

AngularJS View

<div ng-controller="Example.Picker.Person">
    <select ng-model="property.Value">
        <option value="0">---Please select---</option>
        <option ng-selected="{{person.Id == property.Value}}"
                ng-repeat="person in persons"
            {{person.FirstName}} {{person.LastName}} 

AngularJS Controller

    function ($scope,$http) {

        $http.get("backoffice/Example/ExampleApi/GetAll").then(function(response) {
        $scope.persons =;

Package Manifest

    javascript: [


As you see this is very similar to creating custom Umbraco property editors, the main difference is that we'll be working with the property.Value object (and not model.value)