如何在编辑模式下绑定下拉控件?

时间:2015-03-19 04:30:11

标签: angularjs ng-options

我有一份国家清单及其相应的州。

现在我想在编辑模式下打开时在下拉控件中绑定国家/地区和州值。

这是小提琴链接:

http://jsfiddle.net/mariapithia/4yj8rprp/9/

     <tr data-ng-repeat="friend in friends">
                        <td><strong>{{ friend.Id }}</strong></td>
                        <td>
                        <p data-ng-hide="friend.editMode">{{ friend.firstname}}</p>
                        <input data-ng-show="friend.editMode" type="text" data-ng-model="friend.firstname" />


                        </td>
                        <td>
                        <p data-ng-hide="friend.editMode">{{ friend.lastname}}</p>
                        <input data-ng-show="friend.editMode" type="text" data-ng-model="friend.lastname" />

                        </td>

                      <td>
                      <p data-ng-hide="friend.editMode">{{ friend.Country.Name }}</p>
                          @*How do i use select here for dropdown for binding country name in my dropdown*@
                @*<select data-ng-show="friend.editMode">
                    <option value="">-- Select Country --</option>
                 </select>  *@
                        </td>
                        <td>
                       <p data-ng-hide="friend.editMode">{{friend.State.Name }}</p>
@*How do i use select here for dropdown for binding state name in my dropdown*@
                @*<select data-ng-show="friend.editMode">
                    <option value="">-- Select State--</option>
                 </select>  *@
                        </td>
                        <td>
                            <p ><a data-ng-click="toggleEdit(friend)" href="javascript:;">Edit</a> | <a data-ng-click="deletefriend(friend)" href="javascript:;">Delete</a></p>
                        </td>
                    </tr>
                </table>

就像我使用textbox显示firstname和lastname.sameway一样,我想使用下拉列表在下拉列表中显示我的国家/地区名称和状态名称,并允许用户从下拉列表中选择其他国家/地区,如果用户想要选择

我从这个链接中获取了一些代码,只添加了少量字段: http://www.c-sharpcorner.com/uploadfile/raj1979/crud-operations-in-mvc-5-using-webapi-with-angularjs/

2 个答案:

答案 0 :(得分:2)

您可以使用ng-repeat

<select data-ng-show="friend.editMode" ng-model="friend.Country.Name">
    <option ng-repeat="country in countries" value="{{country}}" ng-selected="friend.Country.Name==country">{{country}}</option>
</select>   

或使用ng-options

<select ng-model="friend.Country.Name" ng-options="country as country for country in countries"></select>

在您的控制器中定义一组国家/地区。

$scope.countries = ['America', 'Australia', 'london'];

答案 1 :(得分:1)

以下是您希望您可以将ng-options用于状态和选项框的选项。国家。

<强> HTML

<td>
    <p data-ng-hide="friend.editMode">{{ friend.Country.Name }}</p>
    <select data-ng-show="friend.editMode" ng-model="friend.Country" ng-options="country.Name for country in countries track by country.Id "></select>
</td>
<td>
    <p data-ng-hide="friend.editMode">{{friend.State.Name }}</p>
    <select data-ng-show="friend.editMode" ng-model="friend.State" ng-options="state.Name for state in states track by state.Id "></select>
</td>

<强>控制器

$scope.countries = [{
    "Id": 1,
    "Name": "America",
}, {
    "Id": 2,
    "Name": "Australia",
}, {
    "Id": 3,
    "Name": "london",
}];

$scope.states = [{
    Id: 1,
    CountryId: 1,
    Name: "Chicago",
}, {
    Id: 2,
    CountryId: 2,
    Name: "sydney",
}, {
    Id: 3,
    CountryId: 3,
    Name: "abc",
}];

<强> Working Fiddle

  

注意

     

按ID使用跟踪选择加载选项,如此建议   github issue