Wednesday 15 June 2011

angularjs - Ui Router Resolve - Cancel State Controller Load Afterwards? -



angularjs - Ui Router Resolve - Cancel State Controller Load Afterwards? -

angular ui router question

when $state.go("main.loadbalancer.readonly"); activated in resolve block, main.loadbalancer.vips state controller viplistctrl (the controller only) still loads after resolve.

since state main.loadbalancer.readonly activated, how can maintain create controller viplistctrl cancel , not load?

i tried using promise , never having promise resolve, ui router seems remain sit down @ resolve forever.

angular.module("main.loadbalancer", ["ui.bootstrap", "ui.router"]).config(function($stateprovider) { homecoming $stateprovider.state("main.loadbalancer", { url: "device/:id", views: { "content@": { templateurl: "loadbalancer/loadbalancer.html", controller: "loadbalancerctrl" } } }).state("main.loadbalancer.vips", { resolve: { isdevicereadonly: function($state) { if (!$state.current.data['deviceid']) { $state.go("main.loadbalancer.readonly"); //this ran...need controller //viplistctrl not run afterwards } } }, url: "/vips", templateurl: "loadbalancer/vip-table.html", controller: "viplistctrl" }).state("main.loadbalancer.nodes", { url: "/nodes", templateurl: "loadbalancer/node-table.html", controller: "nodelistctrl" }).state("main.loadbalancer.admin", { url: "/admin", templateurl: "loadbalancer/admin.html", controller: "adminctrl" }).state("main.loadbalancer.readonly", { url: "/readonly", templateurl: "loadbalancer/readonly.html", controller: "readonlyctrl" }); });

resolve: { isdevicereadonly: function($state, $q, $timeout) { if (!$state.current.data['deviceid']) { $timeout(function() { $state.go("main.loadbalancer.readonly"); }); homecoming $q.reject("rejection message"); // <-- gotta reject resolve } } },

plunk demonstrates $q.reject cancelling transition: http://plnkr.co/edit/njjtyvbkd4rdy3ockaf6?p=preview

angularjs angular-ui-router

No comments:

Post a Comment