2015-07-21 4 views
1

У меня есть простое угловое приложение, в котором используются два шаблона и контроллеры. Две кнопки расположены для переключения видов. Они вызывают функцию, определенную внутри элементов управления, которая использует window.location = '' для переключения местоположения.Переключение просмотров не переключает контроллер в угловом

Однако, если я поместил директиву ng-controller, шаблон изменится, но контроллер этого не сделает. Но если я просто удаляю директиву ng-controller, никакой контроллер не загружается вообще, но отображается представление по умолчанию.

Что происходит не так ?? Вот мой код:

HTML:

<body ng-app='schoolConnect' ng-controller='takeCtrl' > 
<div ng-show='loading' style='margin-top:100px' > 
<!--content--> 
</div> 
<table width=40% align='center' style='margin-bottom:10px' > 
    <tr> 
    <td align='center' > 

<!-- BUTTONS THAT SWITCH THE VIEW --> 
    <div class='btn-group' > 
    <button class='btn btn-lg' ng-class='take_btn' ng-disabled='isTaking' ng-click='takeAttend()' > 
&nbsp;Take&nbsp; 
    </button> 
    <button class='btn btn-lg' ng-class='view_btn' ng-disabled='isViewing' ng-click='viewAttend()' > 
&nbsp;View&nbsp; 
    </button> 

    </div> 
    </td> 
</tr> 
</table> 
<table width=40% align='center' > 
    <!-- Some content that contains ng-models and ng-binds --> 
</table> 

<!-- This table Contains the rendered views --> 
<table align='center' class="table table-striped table-hover table-bordered table-condensed" style='width:60%' ng-view></table> 

</body> 

</html> 

Javascript:

/********************************* 
*>Apply controller to angular app** 
*>Define major functions ********** 
********************************/ 

//Initalize app 
var app=angular.module('schoolConnect',['ngSanitize','ngRoute']); 

//Define Views 

function configViews($routeProvider) 
{ 
    $routeProvider 
    //default view is Take Attendance 
    .when('/take',{ 
     templateUrl: 'partials/takeAttendance.html', controller: "takeCtrl" 
     }) 

    //View for tviewing attendance 
    .when('/view',{ 
     templateUrl: 'partials/viewAttendance.html', controller: "viewCtrl" 
     }) 

     .otherwise({ 
     redirectTo:'/take' 
     }); 
} 

//Assign Views 
    app.config(configViews); 



//Assign controllers 

//Take Attendance-Controller 
app.controller('takeCtrl',takeCtrl); 

//Define Controller 
function takeCtrl($scope,$http){ 
    $scope.pageTitle='Attendance'; 

    //************INITIALIZE SOME VARIABLES AS REQUIRED***** 
    $scope.view_btn='btn-danger'; 
    $scope.take_btn='btn-default'; 
    $scope.isTaking=true; 
    $scope.isViewing=false; 

    //SOME MORE CODE HERE 

    } //CONTROLLER 1 ENDS 


//View Attendace-Controller 
app.controller('viewCtrl',viewCtrl); 

//Define Controller 
function viewCtrl($scope,$http){ 
    $scope.pageTitle='Attendance'; 

    //************INITIALIZE SOME VARIABLES AS REQUIRED***** 
    $scope.view_btn='btn-default'; 
    $scope.take_btn='btn-danger'; 
    $scope.isTaking=false; 
    $scope.isViewing=true; 

    //SOME MORE CODE HERE 

    } //CONTROLLER 2 ENDS 

просмотры нагрузка только штраф, но контроллер является same.If я удалить его из тела тега, нет контроллера вообще.

+0

Как выглядят TakeAttendance.html и viewAttendance.html? Обычно вы можете настроить угловой контроллер внутри этих файлов HTML. –

+0

они содержат в себе пару сгенерированных с помощью ng-repeat. Настройка контроллера оттуда корректно отображает таблицу, но все остальные переменные за пределами места размещения ng-view не отображаются ... –

+0

Что вы имеете в виду? Что отображается неправильно? –

ответ

0

Если вы связываете контроллер с точкой зрения провайдера маршрута, нет необходимости использовать ng-контроллер.

<body ng-app='schoolConnect' > 

Внедрение службы определения местоположения для правильного переключения видов.

viewCtrl($scope,$http,$location){ 

И использовать метод пути, чтобы перейти к указанной точке зрения:

$location.path('/take'); 

Затем вставьте в index.html нг ракурсе

<div ng-view></div> 

В этом Div было бы мнение от маршрута.

Смежные вопросы