AngularJS - 在视图中的列表之间进行选择

时间:2016-02-08 21:50:35

标签: angularjs list view controller

我正在使用angularjs,基本上我正在尝试做的是根据组织名称预填充下拉列表。现在,以下代码预先填充了正确的值,但每当我执行代码时,它都无法引用列表中定义的属性。

我的控制器中定义了两个列表:

listOne = [{name : 'NameOne', id : 'IdOne'}];
listTwo = [{name : 'NameTwo', id : 'NameTwo'}]; 

(这些列表中有更多项目......但只是为了得到这一点)

在我看来,我有以下内容:

<div ng-if="$root.sessionObj.name.org != 'OrgName'">
    <select name="domain" id = "domain" class="form-control"
         required="true"
         ng-options="domain as domain.name for domain in listOne"
         ng-model="selectedDomain">
         <option value=""/>
     </select>
</div>
<div ng-if="$root.sessionObj.name.org=='OrgName'">
     <select name="domain id="domain" class="form-control"
         required="true"
         ng-options="domain as domain.name for domain in listTwo"
         ng-model="selectedDomain">
         <option value="" />
     </select>
</div>

每当我去执行我的代码时,我都会收到一个类型错误,指出“无法获取未定义或空引用的属性'名称。有谁知道我可能做错了什么?我尝试了一堆不同的东西,包括将我的div包装在定义这些列表的控制器中,但也没有用。感谢任何帮助!

3 个答案:

答案 0 :(得分:0)

该错误可能来自$ root.sessionObj或来自html的域。您是否同时在您的范围内定义了这两个?

答案 1 :(得分:0)

想出来!原来它是由与列表完全无关的东西引起的。

答案 2 :(得分:0)

最有可能的是,未定义的'name'来自'$ root.sessionObj.name',而不是来自'domain.name'。

确保'$ root.sessionObj'未定义。