Проблема области ng-include без изменения шаблона

В моем шаблоне есть поле выбора, которое выглядит так:

<form name="myForm" class="fixed-select">
   <select name="repeatSelect" id="repeatSelect"
            ng-model="selectedItem">
      <option ng-repeat="program in programs"
              value="{{program.name}}">
         {{program.name}}
      </option>
   </select>
</form>

Мой шаблон таков:

<div ng-include="'/views/program/program.html'"></div>

Теперь в моем контроллере (назовем его MyCtrl) я могу установить selectedItem и вызвать загрузку нужной вещи:

$scope.selectedItem = "Manage";

Но при использовании поля выбора вручную ничего не происходит, так как я считаю, что это не привязано к родительской области (текущему контроллеру (MyCtrl) шаблона с ng-include).

Я искал, как это исправить, и в нескольких вариантах упоминается изменение шаблона, чтобы включить $parent или что-то в этом роде. Это действительно необходимо? Я надеялся, что ng-include — отличный способ инкапсулировать существующие данные, чтобы я мог использовать его снова без каких-либо изменений. Что мне нужно сделать, чтобы подключить область ng-include к контроллеру (MyCtrl)?

Большое спасибо за ваше время и терпение в чтении этого.

edit1: «Программы», которыми заполнено поле выбора, представляют собой просто массив строк: ["Main", "Etc"]


person iamsampsan    schedule 10.11.2016    source источник
comment
вы можете начать с изменения выбора, чтобы использовать ng-options, который создан для списков параметров, вместо ng-repeat.   -  person Claies    schedule 10.11.2016
comment
Раньше я использовал ng-repeat без проблем. ng-options испортил параметр по умолчанию, который я хотел загрузить.   -  person iamsampsan    schedule 10.11.2016
comment
Можете ли вы немного обновить вопрос, указав содержимое массива programs, чтобы можно было проверить поведение, которое вы описываете?   -  person Claies    schedule 10.11.2016


Ответы (1)


Получается, что я должен был создать объект для наследования. Поэтому вместо $scope.selectedItem в моем контроллере и просто selectedItem в моем шаблоне я использовал $scope.model.selectedItem и model.selectedItem соответственно.

Я узнал об этом из другой проблемы с переполнением стека.

person iamsampsan    schedule 10.11.2016