angularjs选择另一个数组的ng-options默认值

时间:2015-10-12 15:40:01

标签: javascript arrays angularjs select options

我想在angularjs中为select字段设置一个init选项。我的问题是我的选项来自一个数组,我的默认选项应该来自另一个数组。这是我的代码:

<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;
})

我希望你知道我的问题是什么。

3 个答案:

答案 0 :(得分:0)

怎么样:

<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>

答案 1 :(得分:0)

您可以在下拉框中将模型userorg.organizations设置为您想要的初始项目。

注意:因为AngularJS需要你的ng-model变量(userorg.organizations)来引用你想要在ng-options数组中选择的同一个对象(不是具有相同值的不同对象)( org),您可能需要遍历org数组才能找到“匹配”默认对象的对象。

假设组织的所有名称都是唯一的,您可以修改用户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]
      }
    }
})

答案 2 :(得分:0)

我为我的问题创建了一个解决方法

js file:

    $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>

这对我来说很好用!