Reuse the `u-route` controller, which expects the` resolve`d parameter

I want to be able to reuse my controllers ui-router. Currently, they get parameters from ui-router resolveto display their templates. Can I reuse these controllers without ui-router?

For example, I do this with ui-router:

.controller('DetailController', function ($scope, detailData) {
    $scope.controllerDetail = detailData + "is awesome!";
})
.config(function ($stateprovider) {
    $stateprovider.state('detailState', {
        resolve: {
            detailData: function () { return "John Doe"; }
        },
        template: '<p>{{ controllerDetail }}</p>',
        controller: 'DetailController'
    }
}

Now I want to use the same controller to display a fixed sub-panel in another place. For instance:

<master ng-init='childData="Jane Smith"'>
    <detail ng-controller='DetailController' ng-controller-params="{ detailData : childData">
        <p>{{ controllerDetail }}</p>
    </detail>
</master>

, , . , resolve init , , . , , HTML.

+3
1

, , , ui-router resolve() , ng-controller, , , .

.value('detailData', 'here goes the default/fallback value')

ng-controller, detailData, , .

+1

All Articles