AngularJs变量不在视图中显示

时间:2016-01-06 16:02:18

标签: javascript angularjs html5

出于某种原因我的变量" navitem.route"当我尝试将它用作函数中的参数时,我不会在视图中显示。在生成的html中,变量显示为" navitem.route"而不是变量的值,但是当它在这些花括号之间的href中使用时,它会显示它应该。

在我的控制器中:

$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>

我如何使用&#34; navitem.route&#34;函数中的值?

提前致谢,

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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>