目前,我将<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。 这只是正在发生的事情的草稿。
答案 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- *指令不需要{{}}
。