Chapter 8: Implementing nested ui-router resolves

by billy roberts

HTML

<script src="https://code.angularjs.org/1.3.2/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.2/angular-resource.min.js"></script>
<div ng-app="myApp">
    <div ng-controller="Ctrl">
        <button ng-click="getWidget()">Get Widget</button>
        {{ status }}
    <div />
</div>

JavaScript

//ngResource

angular.module('myApp', ['ngResource'])
.controller('Ctrl', function($scope, $resource) {
    // creates the resource object, which exposes get(), post(), etc.
    var Widget = $resource('/widgets/:widgetId', {widgetId: '@id'});
    
    $scope.getWidget = function() {
        // resource object must be coaxed into returning its promise
        // this can be done with the $promise property
        Widget.get({id: 8})
        .$promise
        .then(function(widget) {
            // widget is the returned object with id=8
            $scope.status = 'Success!';
        }, function() {
            // error callback
            // this will always happen in this example since
            // JSFiddle does not have a /widgets endpoint
            $scope.status = 'Failure!';
        });
    };
});