我正在使用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包装在定义这些列表的控制器中,但也没有用。感谢任何帮助!
答案 0 :(得分:0)
该错误可能来自$ root.sessionObj或来自html的域。您是否同时在您的范围内定义了这两个?
答案 1 :(得分:0)
想出来!原来它是由与列表完全无关的东西引起的。
答案 2 :(得分:0)
最有可能的是,未定义的'name'来自'$ root.sessionObj.name',而不是来自'domain.name'。
确保'$ root.sessionObj'未定义。