给定以下select元素
<select ng-options="size.code as size.name for size in sizes " ng-model="item.size.code" ng-change="update(MAGIC_THING)"> </select>
有没有办法让MAGIC_THING等于当前选择的大小,所以我可以访问size.name和size.code在我的控制器?
size.code会影响应用程序的其他部分(图像urls等),但是当item.size.code的ng-model更新时,item.size.name需要更新为面向用户的东东。我假设正确的方法是捕获更改事件并设置我的控制器内的值,但我不知道我可以传递到更新以获得正确的值。
不是将ng-model设置为item.size.code,而是将其设置为size:
原文链接:https://www.f2er.com/angularjs/147833.html<select ng-options="size as size.name for size in sizes" ng-model="item" ng-change="update()"></select>
然后在您的update()方法中,$ scope.item将设置为当前选定的项目。
和任何代码需要item.size.code,可以通过$ scope.item.code获取该属性。
基于评论中的更多信息更新:
使用一些其他$ scope属性为您的选择ng-model然后:
<select ng-options="size as size.name for size in sizes" ng-model="selectedItem" ng-change="update()"></select>
控制器:
$scope.update = function() { $scope.item.size.code = $scope.selectedItem.code // use $scope.selectedItem.code and $scope.selectedItem.name here // for other stuff ... }