51 lines
1.8 KiB
JavaScript
51 lines
1.8 KiB
JavaScript
//create a namespace (optional)
|
|
var ArchetypeSampleLabelHelpers = {};
|
|
|
|
//create a function
|
|
//you will add it to your label template field as `{{ArchetypeSampleLabelHelpers.testPromise(someArchetypePropertyAlias)}}`
|
|
ArchetypeSampleLabelHelpers.testPromise = function(value) {
|
|
//you can inject services
|
|
return function ($timeout, archetypeCacheService) {
|
|
//best to return a promise
|
|
//NOTE: $timeout returns a promise
|
|
return $timeout(function () {
|
|
return "As Promised: " + value;
|
|
}, 1000);
|
|
}
|
|
}
|
|
|
|
ArchetypeSampleLabelHelpers.testEntityPromise = function(value, scope, args) {
|
|
//hey look, args!
|
|
//{{ArchetypeSampleLabelHelpers.testEntityPromise(someArchetypePropertyAlias, {foo: 1})}}
|
|
console.log(args);
|
|
|
|
return function ($q, entityResource) {
|
|
var deferred = $q.defer();
|
|
|
|
entityResource.getById(args.foo, 'document').then(function(entity) {
|
|
console.log("Hello from testEntityPromise");
|
|
console.log(entity);
|
|
deferred.resolve(entity.name);
|
|
});
|
|
|
|
return deferred.promise;
|
|
}
|
|
}
|
|
|
|
ArchetypeSampleLabelHelpers.testEntityPromise2 = function(value, scope, args) {
|
|
//hey look, args but we're also using the built-in archetypeCacheService
|
|
//{{ArchetypeSampleLabelHelpers.testEntityPromise(someArchetypePropertyAlias, {foo: 1234})}}
|
|
console.log(args);
|
|
|
|
return function ($q, archetypeCacheService) {
|
|
var deferred = $q.defer();
|
|
|
|
archetypeCacheService.getEntityById(args.foo, 'document').then(function(entity) {
|
|
console.log("Hello from testEntityPromise2");
|
|
console.log(entity);
|
|
deferred.resolve(entity.name);
|
|
});
|
|
|
|
return deferred.promise;
|
|
}
|
|
} |