【问题标题】:When I change my $scope.model through select within a ui-tabset it doesn't change accordingly当我通过 ui-tabset 中的 select 更改我的 $scope.model 时,它不会相应更改
【发布时间】:2019-04-19 20:23:56
【问题描述】:

目前我的 <select> 位于 ui-tabset 内,当它位于 tabset 内时,当我将其设置为模型时,它似乎无法正确更新我的 $scope.filter_item_package。

这是我的代码: HTML:

<uib-tab index="2" heading="All Harvest Plans">
  <select class="form-control"  ng-model='filter_item_package' ng-change='package_change()' >
   <option ng-repeat=" items in cases_filter_items" ng-selected="{{items.t2}}" value="{{items.t2}}">{{items.t3}}
   </option>
  </select>
</uib-tab>

JS:

$scope.filter_item_package = 'Cases'
 $scope.cases_filter_items = [
{'id':1,'t2':'Cases','t3':'Show Cases'},
{'id':2,'t2':'Acres','t3':'Show Acres'},
{'id':2,'t2':'Palettes','t3':'Show Pallettes'}
]
$scope.package_change = function(){console.log($scope.filter_item_package)}

但是当我没有嵌套在 ui-tabs 中的选项时,它会正确更新。例如,当我更改为 Acres 或 Palettes 时,它会相应地 console.log。 这只是正在发生的事情的粗略草图。

【问题讨论】:

    标签: angularjs angular-ui-bootstrap angular-bootstrap


    【解决方案1】:

    我发现您的草稿至少有一个问题。

    当你写ng-selected="{{items.t2}}"时,你是在说:

    如果items.t2 返回true,则设置该元素的selected 属性。

    因为items.t2 返回一个字符串,在 Javascript 中它是“真实的”,所以您将所有 ng-repeat 实例默认设置为selected。

    改为使用ng-selected="items.t2 === filter_item_package"。请注意,ng-* 指令不需要{{}}。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-02
      • 2021-01-26
      相关资源
      最近更新 更多