2017-04-04 60 views
0

我有這個代碼,我無法弄清楚什麼是錯的。我在回送中使用來自MySql的數據。使用UI路由器的路由問題<a>標籤

<ul id="main-menu" class="main-menu" ng-class="{'mobile-is-visible': layoutOptions.sidebar.isMenuOpenMobile}" > 
    <li ng-class="sideClass('{{ menu.link }}')" ng-repeat="menu in myMenus"> 
     <a ui-sref="{{ menu.link }}"> 
      <i class="fa fa-{{ menu.icon }}" aria-hidden="true"></i> 
      <span class="title ng-binding">{{ menu.label }}</span> 
     </a> 
    </li> 
</ul> 

我的角碼是:

app.config(['$stateProvider','$urlRouterProvider',  function($stateProvider,$urlRouterProvider){ 
$stateProvider 
.state('home',{ 
    url: '/home', 
    authenticate: true, 
    views: { 
     '[email protected]': { 
      templateUrl: 'views/home.html' 
     } 
    } 
}) 
.state('users', { 
    url: '/users', 
    parent: 'home', 
    views: { 
     '[email protected]' : { 
      templateUrl: 'views/users.html', 
      controller: 'usersCtrl' 
     } 
    } 
}) 
}); 

Menus.find({ 

}, function(res){ 
     $scope.myMenus = res; 

}); 

用它來很好地工作。我不知道爲什麼會突然它給我安的錯誤

Error: Invalid state ref '' ... 

的$ scope.myMenus:

[ 
{ 
    "label": "HOME", 
    "icon": "dashboard", 
    "link": "home" 
},{ 
    "label": "Users", 
    "icon": "users", 
    "link": "users" 
} 
] 

錯誤消息

Error: Invalid state ref '' 
at parseStateRef (http://localhost:3000/vendor/angular-ui-router.js:3358:45) 
at link (http://localhost:3000/vendor/angular-ui-router.js:3440:17) 
at ea (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js:73:293) 
at D (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js:62:190) 
at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js:55:105) 
at D (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js:62:134) 
at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js:55:105) 
at https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js:54:249 
at https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js:56:79 
at k (https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js:60:377) <a ui-sref="{{ menu.link }}"> 
+0

什麼是'$ scope.myMenus'的內容? – Mistalis

+0

它擁有菜單屬性,我已經將它添加到我的問題 – oded

+0

你的一個'menu.link'可能是'void'或'''',並導致這個錯誤。 – Mistalis

回答

0

我找到了答案。我後來在代碼中創建了具有權限的菜單數組,因此他無法成功讀取它。我添加了一些標誌:

$scope.showMenu = false; 

開頭。而在HTML視圖我已經加入到UL:

<ul id="main-menu" class="main-menu" ng-if="showMenu" >.... 

我創建的菜單後,我將其更改爲:

$scope.showMenu = true;