javascript - async data fetching and angular library -


"i have following problem: fetch json async rest call , use in existing directives angular library (in case angular-ui-tree , angular-charts).

this simple example angular-ui-tree try explain problem . service:

var mod = angular.module("user.services"); mod.factory("userservice", ["$http",  function ($http) {      return {         getusermenu: function () {         //call rest             return $http.get('/user/menu').then(function (response) {                     return response.data;             });         }     }; }]); 

the controller:

var mod = angular.module("admin.controllers"); $scope.menu = []; userservice.getusermenu().then(function(menuresp){      $scope.menu = menuresp; }; $scope.showbody = true; $scope.selecteditem = {};  $scope.options = {}; ... 

page (it's fragment):

<div ng-controller="menulistctrl"> <script type="text/ng-template" id="items_renderer.html">    <div ui-tree-handle>... </div>    <ol ui-tree-nodes="options" ng-model="item.items">     <li ng-repeat="item in item.submenu" ui-tree-node ng-include="'items_renderer.html'"></li>     </ol> </script> <div ui-tree="options"> <ol ui-tree-nodes ng-model="list" >  <li ng-repeat="item in menu" ui-tree-node ng-include="'items_renderer.html'"></li> </ol> </div> 

when open page tree correctly render have error in console. in angular-ui case error "cannot read property '0' of undefined". think it's because when controller been loading menu var wasn't set.

probably way wrong. think solution render angular-ui-tree fragment after data loading. this:

var mod = angular.module("tnp.admin.controllers"); userservice.getusermenu().then(function(menuresp){ //render tree template menuresp data or append in fragment angular-ui-tree directive menuresp data }; 

i have problem others libraries. error different think base problem same. can my? how can render fragment menu data? thanks!!!

i don't see why menu need declared in service. should make sure $scope.menu set empty array in controller before call service populate it.


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -