angularjs select ng-options 默认值与另一个数组
angularjs select ng-options default value with another array
我想为 angularjs 中的 select 字段设置一个初始化选项。我的问题是我的选项来自一个数组,而我的默认选项应该来自另一个数组。这是我的代码:
<select ng-model="userorg.organizations" class="form-control" name="organizations" ng-options="o.name for o in org">
<option value="{{ org._links.parent.href }}">{{ own.name }}</option>
</select>
在我的 js 文件中:
$http.get('api/identity/organizations/').success(function(data) {
$scope.org = data._embedded.organizations;
})
$http.get('user').success(function(data) {
$scope.own = data.organization;
})
我希望你知道我的问题是什么。
怎么样:
<select ng-model="userorg.organizations" class="form-control" name="organizations" ng-init="o.name[0]" ng-options="o.name for o in org track by $index">
<option value="{{ org._links.parent.href }}">{{ own.name }}</option>
</select>
您可以设置您的模型,userorg.organizations
为您希望在下拉框中包含的初始项目。
注意:因为 AngularJS 需要您的 ng-model 变量 (userorg.organizations
) 来引用与您希望在其中选择的对象相同的对象(而不是具有相同值的不同对象) ng-options 数组 (org
),您可能需要遍历 org
数组以找到 "matches" 默认对象的对象。
假设所有组织名称都是唯一的,您可以像这样修改您的用户 http 成功函数:
$http.get('user').success(function(data) {
$scope.own = data.organization;
for (var i = 0; i < $scope.org.length; i++) {
if($scope.org[i].name == $scope.own.name) {
$scope.userorg.organizations = $scope.org[i]
}
}
})
我为我的问题创建了一个解决方法
js文件:
$http.get('user').success(function(data) {
$scope.ownOrg = data.organization.name;
})
$scope.add = function(){
// Check witch Organization is chosen
// ***********************************
if($scope.data.organizations) {
$scope.data.organizations = $scope.data.organizations;
var link = $scope.data.organizations._links.self.href.replace("/uaa/", '/');
} else {
console.log($scope.user);
var link = $scope.users[0]._links.organization.href.replace("/uaa/", '/');
} ...
并在 html
<select ng-model="data.organizations" class="form-control" name="organizations" ng-options="o.name for o in org">
<option value="">{{ ownOrg }}</option>
</select>
这对我来说很好用!
我想为 angularjs 中的 select 字段设置一个初始化选项。我的问题是我的选项来自一个数组,而我的默认选项应该来自另一个数组。这是我的代码:
<select ng-model="userorg.organizations" class="form-control" name="organizations" ng-options="o.name for o in org">
<option value="{{ org._links.parent.href }}">{{ own.name }}</option>
</select>
在我的 js 文件中:
$http.get('api/identity/organizations/').success(function(data) {
$scope.org = data._embedded.organizations;
})
$http.get('user').success(function(data) {
$scope.own = data.organization;
})
我希望你知道我的问题是什么。
怎么样:
<select ng-model="userorg.organizations" class="form-control" name="organizations" ng-init="o.name[0]" ng-options="o.name for o in org track by $index">
<option value="{{ org._links.parent.href }}">{{ own.name }}</option>
</select>
您可以设置您的模型,userorg.organizations
为您希望在下拉框中包含的初始项目。
注意:因为 AngularJS 需要您的 ng-model 变量 (userorg.organizations
) 来引用与您希望在其中选择的对象相同的对象(而不是具有相同值的不同对象) ng-options 数组 (org
),您可能需要遍历 org
数组以找到 "matches" 默认对象的对象。
假设所有组织名称都是唯一的,您可以像这样修改您的用户 http 成功函数:
$http.get('user').success(function(data) {
$scope.own = data.organization;
for (var i = 0; i < $scope.org.length; i++) {
if($scope.org[i].name == $scope.own.name) {
$scope.userorg.organizations = $scope.org[i]
}
}
})
我为我的问题创建了一个解决方法
js文件:
$http.get('user').success(function(data) {
$scope.ownOrg = data.organization.name;
})
$scope.add = function(){
// Check witch Organization is chosen
// ***********************************
if($scope.data.organizations) {
$scope.data.organizations = $scope.data.organizations;
var link = $scope.data.organizations._links.self.href.replace("/uaa/", '/');
} else {
console.log($scope.user);
var link = $scope.users[0]._links.organization.href.replace("/uaa/", '/');
} ...
并在 html
<select ng-model="data.organizations" class="form-control" name="organizations" ng-options="o.name for o in org">
<option value="">{{ ownOrg }}</option>
</select>
这对我来说很好用!