ng-include как сделать заказ по объекту

Я знаю, что фильтры Angular можно применять только к массивам, а не к объектам.

Я пытаюсь включить динамически добавляемые шаблоны, используя следующий код. Кажется, все работает хорошо, пока вы не увидите порядок

Что я хотел бы иметь в этом заказе:

Create Book Address

вот плункер


person Nick Kahn    schedule 14.12.2014    source источник


Ответы (2)


Почему бы не использовать массив вместо объекта «ключ-значение»? ng-repeat упорядочивает итерацию по индексу итерируемого объекта/массива.

РАЗВЕТВЛЕННАЯ ДЕМО

  $scope.templates = [
    'create.html',
    'book.html',
    'address.html'
  ];
person ryeballar    schedule 14.12.2014

кажется, что angular получит ng-include, упорядочив имена в соответствии с их именем,

поэтому, когда вы используете

$scope.templates = 
{
  _address : 'address.html',
  _create : 'create.html',
  _book : 'book.html'
};

упорядочив template по именам, затем _address comes first _book comes second _create comes third

простой подход к решению

$scope.templates = 
{
  _a_create : 'create.html',
  _b_address : 'address.html',
  _c_book : 'book.html'
};

вот Plunker

person Kalhan.Toress    schedule 14.12.2014
comment
почему я не подумал об этом? арггг - person Nick Kahn; 14.12.2014
comment
да, я не использовал ng-repeat, но хотел посмотреть, есть ли лучшее решение, чем просто не использовать ng-repeat - person Nick Kahn; 14.12.2014
comment
Я думаю, что простой ответ @ryeballar лучше этого. - person Kalhan.Toress; 14.12.2014