我在下面有以下代码。当我从房子里选择一个单选按钮时。我想将该值设置为房屋的房间。已选房间。 我知道ng-repeat有一个子范围,我已经尝试了$parent的所有内容。SelectedRoom 到 $parent.house.SelectedRoom 但它似乎没有在父对象上设置属性。{{house.SelectedRoom}}
和{{house.SelectedRoom.Name}}
未设置。
<div ng-app="myApp" ng-controller="mainController">
<div ng-repeat="house in town">
<span>SelectedRoom = {{house.SelectedRoom.Name}} </span>
<div ng-repeat="room in house.Rooms">
<input type="radio" name="$parent.$index" ng-model="house.SelectedRoom" /> {{room.Name}}
</div>
<hr />
</div>
</div>
期望你的javascript正在运行,你需要使用value
属性设置单选按钮的值。您已经指定了放置value
的位置(house.SelectedRoom
),但没有指定
<div ng-app>
<div ng-controller="mainController">
<div ng-repeat="house in town">
<span>SelectedRoom = {{house.SelectedRoom}} </span>
<div ng-repeat="room in house.Rooms">
<input type="radio" name="room.Name" value={{room.Name}} ng-model="house.SelectedRoom"/> {{room.Name}}
</div>
<hr />
</div>
</div>
</div>
当使用这样的 json 结构进行$scope.town
时,这个角度代码有效:
$scope.town = [
{
Rooms:
[
{
Name: "Living Room"
},
{
Name: "Kitchen"
}
],
SelectedRoom: ""
}
];
让它工作。 必须使用ng-value
将对象绑定到单选按钮的值
<div ng-app="myApp">
<div ng-controller="mainController">
<div ng-repeat="house in town">
<span>SelectedRoom = {{house.SelectedRoom.Name}} </span>
<div ng-repeat="room in house.Rooms">
<input type="radio" name="$parent.$index" ng-value="room" ng-model="house.SelectedRoom" /> {{room.Name}}
</div>
<hr />
</div>
</div>
</div>