列表

时间:2015-08-20 00:13:20

标签: javascript angularjs html5 ng-repeat

我有'建议',一系列建议,如:

{Id: 1, Label: "option 1"},
{Id: 2, Label: "option 2"}

和' items',一系列项目,如:

{Id: 1, Name: "Name 1", Recommend: recommendations[0]},
{Id: 2, Name: "Name 2", Recommend: recommendations[1]}

现在,我想显示项目列表,每个项目,显示项目名称和单选按钮组,让用户选择一个可能的'推荐'选项。

我的HTML看起来像:

<div ng-repeat="i in viewModel.items">
  <div>
    {{i.Name}}
  </div>
  <div class="form-group">
    <label class="control-label col-md-3">Recommend this?</label>
    <div class="col-md-9">
        <div class="radio" ng-repeat="r in viewModel.recommendations">
            <label>
                <input type="radio" ng-model="i.Recommend" ng-value="r"/>
                {{r.Label}}
            </label>
        </div>
    </div>
    {{i.Name}}, {{i.Recommend.Label}}
  </div>
</div>
{{viewModel.items | json}}

当我单击每个项目的一个选项时,我看到相应的Recommend.Label正在正确更改,因此它似乎必须模型确定。

我的问题是,在初始页面加载时,每个项目的单选按钮组都没有显示当前选项,即使项目&#39;似乎有一个可能的推荐对象。 (未选中所有单选按钮)。 我错过了什么?

1 个答案:

答案 0 :(得分:0)

您应该设置项目&#34;推荐&#34;值开始时绑定到$ scope.recommendations。

angular.module('test', []).controller('testCtrl', function($scope) {
$scope.viewModel = {};
$scope.viewModel.recommendations = [{Id: 1, Label: "option 1"}, {Id: 2, Label: "option 2"}];
$scope.viewModel.items = [{Id: 1, Name: "Name 1", Recommend: $scope.viewModel.recommendations[0]}, {Id: 2, Name: "Name 2", Recommend: $scope.viewModel.recommendations[1]}]; });

jsFiddle:http://jsfiddle.net/rkgetptj/