嵌套的ui-router $位置绑定

时间:2016-11-29 17:07:57

标签: angularjs angular-ui-router

我使用ui-router时遇到绑定问题。我试图使应用程序模块化,并保持其清洁和简单。 我有以下app.js

// main routing - index.html
var app = angular.module('mainApp', ['ui.router']);
app.config(function($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise('/');
    $stateProvider
        .state('index', {
            url: '/',
            templateUrl: 'pages/main.html'
        })
        .state('cars', {
            url: '/cars',
            templateUrl: 'pages/Cars_model/main.html'
        })
        .state('cars.audi', {
            url: '/audi',
            templateUrl: 'pages/Cars_model/audi.html'
        })
        .state('cars.ford', {
            url: '/ford',
            templateUrl: 'pages/Cars_model/ford.html'
        })
});
app.controller('indexController', function($scope, $location) {
    $scope.isIndexPage = function() {
        return $location.path() === '/';
    }
});
app.controller('carsCtrl', function($scope, $location) {
    if($location.path() === '/cars/audi')
    {
        $scope.pageHeader = "AUDI";
        $scope.curentMenu = "Best Cars";
        $scope.title = "Audi Specs";
    }
    if($location.path() === '/cars/ford')
    {
        $scope.pageHeader = "FORD";
        $scope.curentMenu = "Best Cars";
        $scope.title = "Ford Specs";
    }
});

以及我想使用绑定的文件

    <div class="container" ng-controller="carsCtrl">

    <div class="page-header">
        <h1>{{pageHeader}}</h1>
    </div>

    <!-- The first row -->
    <div class="row">
        <div class="col-lg-12 col-md-12 col-sd-12">                
            <ol class="breadcrumb">
                <li><a href="#/">Home</a></li>
                <li><a href="#/cars">{{curentMenu}}</a></li>
                <li class="active">{{pageHeader}}</li>
            </ol>
        </div>
    </div>
</div>

问题是当我加载页面绑定工作只有一次,第二次我必须刷新页面。

我不确定我是否使用了核心逻辑

if($location.path() === '/cars/ford')

1 个答案:

答案 0 :(得分:0)

我想我找到了解决方案

使用

 ui-sref-opts="{reload: true}"

在菜单中解决问题

<a ui-sref="cars.audi" ui-sref-opts="{reload: true}">Audi</a>

Plunker