2016-01-06 57 views
0

出於某種原因,我的變量「navitem.route」未顯示在視圖中,當我嘗試將它用作函數中的參數時。在生成的html中,變量顯示爲「navitem.route」而不是變量的值,但是何時將它用於它顯示的大致花括號之間的href之間。AngularJs變量不在視圖中顯示

$scope.navitems = [ 
    { 
     title: "Products",  
     route: "#/account/" + $window.sessionStorage.getItem('account') + "/products" 
    }, 
    { 
     title: "Settings", 
     route: "#/account/" + $window.sessionStorage.getItem('account') 
    } 
]; 

$scope.isActive = function (viewLocation) { 
    return viewLocation === $location.path(); 
}; 

在我看來:

在我的控制器

<ul class="nav nav-pills nav-stacked"> 
    <li class="nav-item" data-ng-repeat="navitem in navitems"> 
     <a class="nav-link" href="{{navitem.route}}" data-ng-class="{ active: isActive(navitem.route)}" >{{navitem.title}}</a> 
    </li> 
</ul> 

生成的HTML:

<ul class="nav nav-pills nav-stacked"> 
    <!-- ngRepeat: navitem in navitems --> 
    <li class="nav-item ng-scope" data-ng-repeat="navitem in navitems"> 
     <a class="nav-link ng-binding" href="#/account/2/products" data-ng-class="{ active: isActive(navitem.route)}">Products</a> 
    </li> 
    <!-- end ngRepeat: navitem in navitems --> 
    <li class="nav-item ng-scope" data-ng-repeat="navitem in navitems"> 
      <a class="nav-link ng-binding" href="#/account/2" data-ng-class="{ active: isActive(navitem.route)}">Settings</a> 
    </li> 
    <!-- end ngRepeat: navitem in navitems --> 
</ul> 

我怎樣才能在一個函數中使用 「navitem.route」 值?

由於提前,

+2

'navitem.route'不會對view..but它將傳遞給'isActive'功能填充.. –

回答

0

navitem.route值以#開始。 location.path()返回的url不會有#。所以isActive()永遠不會返回true。從路線中刪除#號。

控制器:

$scope.navitems = [ 
{ 
    title: "Products",  
    route: "/account/" + $window.sessionStorage.getItem('account') + "/products" 
}, 
{ 
    title: "Settings", 
    route: "/account/" + $window.sessionStorage.getItem('account') 
} 
]; 

鑑於使用ngHref代替HREF:

<a class="nav-link" ng-href="#/{{navitem.route}}" data-ng-class="{ active: isActive(navitem.route)}" >{{navitem.title}}</a> 
+0

工作,謝謝! – Peter

0

您需要使用NG-HREF,像這樣:

<ul class="nav nav-pills nav-stacked"> 
    <li class="nav-item" data-ng-repeat="navitem in navitems"> 
     <a class="nav-link" ng-href="{{navitem.route}}" data-ng-class="{ active: isActive(navitem.route)}" >{{navitem.title}}</a> 
    </li> 
</ul> 
+0

這是行不通的。它的結果是Products Peter

+0

對不起,像這樣:ng-href =「{{navitem.route}}」 – Lax

+0

啊......這很有道理:)謝謝! – Peter

相關問題