ng-include范围问题而不更改模板

时间:2016-11-10 16:20:26

标签: javascript angularjs

我的模板中有一个选择框,如下所示:

<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: 这些节目&#39;选择框的填充只是一个字符串数组:[&#34; Main&#34;,&#34; Etc&#34;]

1 个答案:

答案 0 :(得分:0)

事实证明我应该创建一个继承的对象。因此,我的控制器中只有$scope.selectedItem而我的模板中只有selectedItem,我分别使用了$scope.model.selectedItemmodel.selectedItem

我从another issue on stack overflow了解到这一点。