当我在ui标签集内通过选择更改$ scope.model时,它不会相应更改

时间:2019-04-19 20:23:57

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

目前,我将<select>放在ui标签集中,当将其$scope.filter_item_package设置为模型时,似乎无法正确更新<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>

这是我的代码: HTML:

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

JS:

http://localhost:3030/$/datasets?dbType=tdb&dbName=<dataset-name>

但是当我没有在ui标签内嵌套选项时,它会正确更新。例如,当我更改为英亩或调色板时,它将相应地显示console.log。 这只是正在发生的事情的草稿。

1 个答案:

答案 0 :(得分:1)

我可以看到您的草稿至少有一个问题。

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

  

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

由于items.t2返回的字符串在Javascript中是'truthy',因此您将所有ng-repeat实例默认设置为selected

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