如何在ng-repeat指令中正确使用ui-select

乌龟

我有一个ui-select包装在ng-repeat指令中的。由于它们具有相同的作用域,所以我有几个问题:

  • 在第一个选择中选择值后,第二个选择已经预先填充了我第一次输入的内容。

  • 占位符被隐藏,仅显示在选择字段中的焦点。

这是html:

<div ng-repeat="repeat in repeats">
  <p>Selected: {{repeat.id.formatted_address}}</p>
  <ui-select ng-model="repeat.id"
             theme="bootstrap"
             ng-disabled="disabled"
             reset-search-input="false"
             style="width: 300px;">
    <ui-select-match placeholder="Enter an address...">{{$select.selected.formatted_address}}</ui-select-match>
    <ui-select-choices repeat="address in addresses track by $index"
                       refresh="refreshAddresses($select.search)"
                       refresh-delay="0">
      <div ng-bind-html="address.formatted_address | highlight: $select.search"></div>
    </ui-select-choices>
  </ui-select>
</div>

问题是使用几种ui-select指令防止这些问题的正确方法是什么

演示柱塞

谢拉克

您可以为地址查找创建指令,并将查找逻辑移至指令控制器。每个指令实例将具有其自己的控制器实例,并因此具有其自己的实例$scope.addresses(防止预填充第二个选择以及第一个选择的行为)。

<div ng-repeat="repeat in repeats">
  <address-selector repeat="repeat"></address-selector>
</div>

app.directive('addressSelector', function() {
  return {
    restrict: 'E',
    scope: {
      repeat: '='
    },
    template:
    '<p>Selected: {{repeat.id.formatted_address}}</p>' +
    '<ui-select ng-model="repeat.id"' +
    '    theme="bootstrap"' +
    '    ng-disabled="disabled"' +
    '    reset-search-input="false"' +
    '    style="width: 300px;">' +
    '<ui-select-match placeholder="Enter an address...">{{$select.selected.formatted_address}}</ui-select-match>' +
    '<ui-select-choices repeat="address in addresses track by $index"' +
    '    refresh="refreshAddresses($select.search)"' +
    '    refresh-delay="0">' +
    '  <div ng-bind-html="address.formatted_address | highlight: $select.search"></div>' +
    '</ui-select-choices>' +
    '</ui-select>',
    controller: function ($scope, $http) {
      $scope.refreshAddresses = function(address) {
        var params = {address: address, sensor: false};
        return $http.get(
          'http://maps.googleapis.com/maps/api/geocode/json',
          {params: params}
        ).then(function(response) {
          $scope.addresses = response.data.results
        });
      };
    }
  };
}); 

为了使用户界面选择的占位符出现,您应该避免初始化模型(repeat.id)或将其设置为null

app.controller('DemoCtrl', function($scope) {
  $scope.repeats=[{}, {}];
});

更新的柱塞

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在sys / select.h中正确使用

来自分类Dev

如何在 Eclipse 中正确使用 Select Max()

来自分类Dev

如何在ng-repeat内的select上更新模型?

来自分类Dev

ng-repeat:如何在select中设置多个属性

来自分类Dev

如何在ng-repeat中正确执行功能

来自分类Dev

AngularJS - bootstrap popover,如何在 ng-repeat 中正确使用“popover-is-open”

来自分类Dev

如何使用 MySQL 在 SELECT * FROM (...) 中正确包装查询

来自分类Dev

如何在PHP中正确使用OR条件的情况下使用MySqli SELECT?

来自分类Dev

如何在angularjs中正确使用ng-class?

来自分类Dev

如何在SQLite Select语句中正确表达参数

来自分类Dev

如何在ng-repeat中创建选定的html-select-option?

来自分类Dev

如何正确使用 <ui:repeat>

来自分类Dev

使用select作为标签时,如何在ng-options中禁用angularjs中的选项

来自分类Dev

如何在Ng-Zorro中使用多行选项构建<select>

来自分类Dev

如何在 JPQL 中正确使用 'and if',像这样:@Query("select t from tablename t where 1=1 and if(:a='', 1=1,ta =:a) ") ,

来自分类Dev

如何在“控制器为”控制器内的指令中正确使用 $watch?

来自分类Dev

如何在Onsen ui中以编程方式将ng-options添加到select标签中?

来自分类Dev

如何在ng-repeat中使用ng-if?

来自分类Dev

如何在嵌套的ng-repeat指令中显示数据

来自分类Dev

如何在指令中访问ng-repeat之外的范围

来自分类Dev

角度:范围,如何在指令中设置ng-repeat

来自分类Dev

如何在指令中正确选择一个元素?

来自分类Dev

如何在Nginx中正确配置别名指令?

来自分类Dev

如何在Angular指令中正确显示JSON

来自分类Dev

如何在指令模板Angular JS中使用ng-repeat

来自分类Dev

如何在嵌套的ng-repeat指令中使用控制语句(if语句)?

来自分类Dev

如何提前在Angular UI中正确使用选择与Firebase数据

来自分类Dev

如何在 C 中正确地进行 SQLite SELECT 查询?

来自分类Dev

如何正确使用SELECT DISTINCT?

Related 相关文章

  1. 1

    如何在sys / select.h中正确使用

  2. 2

    如何在 Eclipse 中正确使用 Select Max()

  3. 3

    如何在ng-repeat内的select上更新模型?

  4. 4

    ng-repeat:如何在select中设置多个属性

  5. 5

    如何在ng-repeat中正确执行功能

  6. 6

    AngularJS - bootstrap popover,如何在 ng-repeat 中正确使用“popover-is-open”

  7. 7

    如何使用 MySQL 在 SELECT * FROM (...) 中正确包装查询

  8. 8

    如何在PHP中正确使用OR条件的情况下使用MySqli SELECT?

  9. 9

    如何在angularjs中正确使用ng-class?

  10. 10

    如何在SQLite Select语句中正确表达参数

  11. 11

    如何在ng-repeat中创建选定的html-select-option?

  12. 12

    如何正确使用 <ui:repeat>

  13. 13

    使用select作为标签时,如何在ng-options中禁用angularjs中的选项

  14. 14

    如何在Ng-Zorro中使用多行选项构建<select>

  15. 15

    如何在 JPQL 中正确使用 'and if',像这样:@Query("select t from tablename t where 1=1 and if(:a='', 1=1,ta =:a) ") ,

  16. 16

    如何在“控制器为”控制器内的指令中正确使用 $watch?

  17. 17

    如何在Onsen ui中以编程方式将ng-options添加到select标签中?

  18. 18

    如何在ng-repeat中使用ng-if?

  19. 19

    如何在嵌套的ng-repeat指令中显示数据

  20. 20

    如何在指令中访问ng-repeat之外的范围

  21. 21

    角度:范围,如何在指令中设置ng-repeat

  22. 22

    如何在指令中正确选择一个元素?

  23. 23

    如何在Nginx中正确配置别名指令?

  24. 24

    如何在Angular指令中正确显示JSON

  25. 25

    如何在指令模板Angular JS中使用ng-repeat

  26. 26

    如何在嵌套的ng-repeat指令中使用控制语句(if语句)?

  27. 27

    如何提前在Angular UI中正确使用选择与Firebase数据

  28. 28

    如何在 C 中正确地进行 SQLite SELECT 查询?

  29. 29

    如何正确使用SELECT DISTINCT?

热门标签

归档