У меня вопрос о порядке рендеринга ng-switch.Порядок рендеринга AngularJS ng-switch
Код (HTML):
<div ng-controller="testCtrl">
<button ng-click="v1 = !v1">toggle v1</button>
<table class="table table-bordered">
<tbody>
<tr ng-switch on="v1">
<th ng-switch-when="true">V1</th>
<th ng-repeat="item in datas">{{item}}</th>
</tr>
</tbody>
</table>
код (Javascript):
var myApp = angular.module('myApp',[]);
function testCtrl($scope) {
$scope.datas = ['A', 'B'];
}
Я ожидал, что результат по порядку:
V1 AB
Но вместо этого, вывод показывает нг-повтор элементов первых, а затем нг-выключатель когда это заявления.
Почему это?
Есть ли альтернативное решение, чтобы сделать такую вещь в ожидаемом порядке?
============================
Обновление (2014/04/02) :
Вот объяснение того, почему нг-шоу не вариант.
Я пишу таблицу, как это директива:
<table class="table table-bordered">
<thead>
<tr>
<th ng-show="checkbox"><input type="checkbox" /></th>
<th ng-repeat="col in columns">{{col.text}}</th>
</td>
</thead>
<!-- body is ignored -->
</table>
флажок переменная для управления, должен ли быть показан входной флажок.
Это работает отлично, пока я применять JQuery ColResize.
Когда флажок переменная является ложным, нг-шоу скрывает первый й элемент.
И как-то скрытый й элемент вызывает JQuery ColResize неисправности.
Поэтому ng-show не подходит для этой ситуации.
========================
Текущее решение:
Мое текущее решение использует ng- переключатель для разделения двух стол элемент.
И используйте одну переменную, чтобы решить, какой стол для рисования.
Как это:
<div ng-switch on="checkbox">
<table ng-switch-when="true">
<tr>
<th><input type="checkbox" /></th>
<th ng-repeat="col in columns">{{col.text}}</th>
</tr>
<!-- body is ignored -->
</table>
<table ng-switch-default>
<tr>
<th ng-repeat="col in columns">{{col.text}}</th>
</tr>
<!-- body is ignored -->
</table>
</div>
Хотя это решить проблему, это не является хорошим решением.
Но пока я не найду альтернативное решение.
Думаю, мне придется согласиться на это.
Спасибо за ответ. «ng-show» решит проблему «порядка». , но в моем конкретном случае «ng-show» вызовет еще одну проблему. – user3483385
Это должно было быть упомянуто в вопросе заранее :). Выясните, в чем проблема с использованием 'ng-show'. – dmahapatro
Извините. Я отредактирую вопрос для объяснения. – user3483385