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()' >
Take
</button>
<button class='btn btn-lg' ng-class='view_btn' ng-disabled='isViewing' ng-click='viewAttend()' >
View
</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 я удалить его из тела тега, нет контроллера вообще.
Как выглядят TakeAttendance.html и viewAttendance.html? Обычно вы можете настроить угловой контроллер внутри этих файлов HTML. –
они содержат в себе пару
Что вы имеете в виду? Что отображается неправильно? –
ответ
Если вы связываете контроллер с точкой зрения провайдера маршрута, нет необходимости использовать ng-контроллер.
Внедрение службы определения местоположения для правильного переключения видов.
И использовать метод пути, чтобы перейти к указанной точке зрения:
Затем вставьте в index.html нг ракурсе
В этом Div было бы мнение от маршрута.
источник
2015-07-21 21:00:52 cyan
Смежные вопросы