AngularJS Ui-Router,视图和标签

时间:2014-12-29 14:56:39

标签: asp.net-mvc vb.net angularjs

好的,我在这里使用ASP.NET MVC5 + AngularJS 1.3.8。

Index.vbhtml:

<div ng-controller="MainController">
    <tabset justified="true">
        <tab ng-repeat="t in tabs" heading="{{t.heading}}" select="go(t.route)" active="t.active"></tab>
    </tabset>
</div>
 <div ui-view="main"></div>

标签工作正常。

App.js:

App.config(function ($stateProvider, $urlRouterProvider, $locationProvider) {

//$locationProvider.html5Mode(true); // HTML5 Mode to remove hashbang, want to revist this later as it requires IIS rewrite rules

$urlRouterProvider.otherwise("/");

$stateProvider
// Main Page
.state('main', {
    abstract: true,
    url: '/',
    views: {
        'main': {
            templateUrl: '/',
            controller: 'MainController'
        }
    }
})

// Home page
.state('home', {
    url: '/home',
    views: {
        'main': {
            templateUrl: '/Home/Index',
            controller: 'HomeController'
        }
    }
})

// Requests Page
.state('requests', {
    url: '/requests',
    views: {
        'main': {
            templateUrl: '/Request/Index',
            controller: 'RequestController'
        }
    }
})

// Leave Requests page
.state('requests.leave', {
    url: '/leave',
    views: {
        'main': {
            templateUrl: '/Request/Leave',
            controller: 'LeaveController'
        }
    }
})
App.controller('RequestController', function ($scope, $state) {
$scope.loadComp = function () {
    $state.go('requests.comp');
};

$scope.loadOvertime = function () {
    $state.go('requests.overtime');
};

$scope.loadLeave = function () {
    $state.go('requests.leave');
};
});

好的,所以我想要完成的是,在我的“请求”选项卡上,我有三个按钮,当我单击其中一个按钮时,将父视图“main”替换为相应的状态。

我看到按钮点击时的URL更改,但没有任何渲染。

我通过AJAX从服务器获取部分视图,没有任何问题,除了这些按钮点击:(

我很想知道我做错了什么:)谢谢!

FWIW:Angular UI-Router: child using parent's view我一直在尝试重做这件事而没有运气......

1 个答案:

答案 0 :(得分:0)

我要做的是尝试指向templateUrl中的真实模板,如下所示:templateUrl:&#39; /Request/Index.html n#39;