angularjs – 使用ng-change选择ng对象

前端之家收集整理的这篇文章主要介绍了angularjs – 使用ng-change选择ng对象前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
给定以下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:
<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获取属性

Fiddle

基于评论中的更多信息更新:

使用一些其他$ 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 ...
}
原文链接:https://www.f2er.com/angularjs/147833.html

猜你在找的Angularjs相关文章