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>

这对我来说很好用!