Я использую переменную под названием activeScope
для поддержания состояния и переключения между двумя формами. Эта переменная изменяет значение при нажатии на вкладку путем вызова changeScope
для обновления.Угловое: ng-show не оценивает выражение непрерывно
Это изменение зарегистрировано правильно для переключения между активными состояниями кнопок вкладок, но divs form0
и form1
не переключаются вообще. Из того, что я вижу, кажется, что я не использую ng-show
правильно, поскольку выражение не оценивает, когда изменяется значение activeScope
.
Вот мои вкладки -
<ul class="nav navbar-nav navbar-right" ng-controller="SearchScope as scope">
<li ng-repeat="item in scopes" ng-class="{'active': isScopeActive({{$index}})}"><a href="" ng-click="changeScope($index)">{{item}}</a></li>
</ul>
У меня есть код для Div-ых как -
<div class="container main-form" ng-controller="SearchScope as scope">
<div id="form0" ng-show="isScopeActive(0)" ng-controller="SingleIPController as sip">
...
</div>
<div id="form1" ng-show="isScopeActive(1)">
...
</div>
</div>
код контроллера -
app.controller("SearchScope", function($scope) {
$scope.activeScope = 0;
$scope.scopes = ['Individual IP Data', 'All IP Data'];
$scope.isScopeActive = function(index){
if(index == $scope.activeScope){
return true;
} else {
return false;
}
};
$scope.changeScope = function(index){
$scope.activeScope = index;
};
});
app.controller("SingleIPController", function($scope, $http){
...
});
Может кто-то пожалуйста, сообщите, если то, что я Делать с ng-show
неправильно и правильный способ решить эту проблему?
Пожалуйста обернуть весь код вверх в дополнительном 'div'-тега и применять' нг-контроллер = "SearchScope as scope" 'на нем. Вы пытаетесь создать экземпляр одного и того же контроллера дважды в своем примере. Скорее всего, вы только этого захотите. –