【发布时间】:2014-01-31 05:49:19
【问题描述】:
我有一个列出组的下拉菜单。每个组都包含一个属性(布尔值),用于确定组所有者是用户还是其他组
如果组所有者是用户,我会获取组 ownerID 并将其与用户数组进行比较以确定哪个用户与该 ID 匹配并将该用户设置为selectedOwner。但是,如果组所有者是一个组,我会尝试遍历我的所有组以找到匹配项并将该组设置为 selectedOwner
这是我的控制器功能:
$scope.groupOwner = function (){
var temp = $scope.selectedGroup.ownerIsUser ? $scope.users : $scope.groups;
var index = temp.length;
console.dir(temp);
while(index--){
if($scope.selectedGroup.owner === temp[index].id){
$scope.selectedOwner = temp[index];
console.log($scope.selectedOwner);
break;
};
};
};
每当更改下拉列表时,它都会调用groupOwner,它会检查selectedUser.ownerIsUser 属性以确定我应该查看哪个数组,users 或groups。
但是,无论 selectedGroup 所有者属性设置为什么,temp 变量始终返回 true。
这是对象的样子:
User = {
name: Demo Administrator,
id: 90,
domain: i:0#.w|itun\demoadmin_compulite,
email: ,
isAdmin: False
}
selectedGroup = {
name: Test Group,
id: 10,
description: ,
owner: 88,
ownerIsUser: False
}
HTML:
<div class="topRow">
<label for="entityDropDown">Select a Group:</label>
<select id="entityDropDown" ng-model="selectedGroup" ng-options="group as group.name for group in groups" ng-change="getGroupInfo(selectedGroup)"></select>
<div class="delGroupBtn"><a>✖</a>
</div>
</div>
对象的控制台输出:
Object {name: "Test Group 4", id: "117", description: "", owner: "71", ownerIsUser: "False"…}
description: ""
id: "117"
name: "Test Group 4"
owner: "71"
ownerIsUser: "False"
__proto__: Object
已解决:
$scope.groupOwner = function (){
//object stores string not booleans
var isUser = $scope.selectedGroup.ownerIsUser === "True"? true : false;
var owner = isUser ? $scope.user : $scope.group;
var index = owner.length;
console.dir(owner);
while(index--){
if($scope.selectedGroup.owner === owner[index].id){
$scope.selectedOwner = owner[index];
console.log($scope.selectedOwner);
break;
};
};
};
【问题讨论】:
-
无意冒犯,但如果蝙蝠侠有拯救哥谭的希望,他不应该知道这些事情吗? ...:P
-
请添加您如何将 selectedGroup 设置为 HTML 范围。
-
其实我想我想通了。假应该是“假”。这是愚蠢的,因为这就是 xml 返回值的方式。谁能确认这是否可能是问题? JS 是区分大小写的吧。
-
你也可以发布你的html代码吗?我想知道
$scope.selectedGroup.ownerIsUser的值是布尔值还是字符串 -
该数据(
User和selectedGroup)应该是 JavaScript 还是 JSON?因为两者都不是。
标签: javascript angularjs