Angularjs - 根据兄弟姐妹

时间:2015-12-07 23:22:01

标签: javascript angularjs

我正在尝试使用多个dropdown select来决定具体的输入值

HTML

<div ng-repeat="i in [1,2,3]">
    <select name="singleSelect" ng-model="chosenitem" style="width:100%;" ng-change="changedValue(i,$index)" >
        <option value="" disabled selected>choose item</option>
        <option ng-repeat="me in stuffs">{{me.item}}</option>
    </select>
    <input type="text" ng-model="inputattr[i]"  placeholder="attribute">
</div>

控制器

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';
  $scope.stuffs = [
    {item:'car', attribute:'wheels'},
    {item:'plane', attribute:'wings'},
    {item:'boat', attribute:'propeller'}
  ];

  $scope.changedValue = function(i,j){
    $scope.inputattr[i] = $scope.stuffs[j].attribute;
  };
});

问题是inputattr是动态的。我永远无法让它发挥作用。这是我的plunk

2 个答案:

答案 0 :(得分:0)

请参阅此plunkr:http://plnkr.co/edit/GVanAH70oyEEI16Nbf0t

你从未真正初始化inputattr。您的索引也存在问题,通常应从0开始。

答案 1 :(得分:0)

您的代码无效的原因是inputattr未初始化。添加

$scope.inputattr = ['','',''];

MainCtrl内。这样就可以了。