Когда я меняю свой $ scope.model через select внутри ui-tabset, он не меняется соответственно - PullRequest
0 голосов
/ 19 апреля 2019

В настоящее время у меня есть <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)}

Но когда у меня нет параметров, вложенных во вкладки пользовательского интерфейса, он корректно обновляется.Например, когда я изменяю на Acres или Palettes, он будет соответственно console.log.Это всего лишь черновик того, что происходит.

1 Ответ

1 голос
/ 21 апреля 2019

Я вижу по крайней мере одну проблему с вашим черновиком.

Когда вы пишете ng-selected="{{items.t2}}", вы говорите:

, если items.t2 возвращает true, тогдаустановите атрибут selected этого элемента.

И поскольку items.t2 возвращает строку, которая является "правдивой" в Javascript, вы устанавливаете все свои экземпляры ng-repeat как selectedпо умолчанию.

Вместо этого используйте ng-selected="items.t2 === filter_item_package".Обратите внимание, что {{}} не требуется для директив ng- *.

...