2017-09-27 91 views
0

我有一个带名称列表的Angularjs表单。 当我点击一个名称时,表单会随着这个配置文件而改变。 当我更改一个输入并且不保存它,并且我点击其他配置文件时,除了已更改的一个输入以外,每个事物都发生更改。Angularjs form scope bug

<form class="form-horizontal bordered-row" > 
       <div class="form-group"> 
        <label class="col-sm-4 control-label">Naam</label> 
        <div class="col-sm-6"> 
        <input type="text" class="form-control" id="" value="{{gegevens.naam | capitalize}}"> 
        </div> 
       </div> 
       <div class="form-group"> 
        <label class="col-sm-4 control-label">Categorie</label> 
        <div class="col-sm-6"> 
        <select class="form-control"> 
         <option ng-repeat="x in producten_categorie" value="{{x.value}}" ng-selected="gegevens.categorie == x.value">{{x.name}}</option> 
        </select> 
        </div> 
       </div> 
       <div class="form-group pad25L"> 
        <button class="btn btn-info" ng-click="productAlgemeen_update(gegevens.naam);">Save</button> 
       </div> 
       </form> 

,变化范围:

$scope.productGegevens = function(product){ 
$http.post("php/producten-locatie.php", {'id':product.id}).then(function(response){ 
    $scope.producten_locatie = response.data.records[0]; 
    $scope.gegevens = { 
    id:product.id, 
    naam:product.naam, 
    categorie:product.categorie, 
    straatnaam:$scope.producten_locatie.straatnaam, 
    huisnummer:$scope.producten_locatie.huisnummer, 
    postcode:$scope.producten_locatie.postcode, 
    stadsnaam:$scope.producten_locatie.stadsnaam 
    }; 
}); 

}

+0

它看起来像变化检测是一个问题。你能分享你的课堂文件吗 –

+0

@AirirdhaDas我是Angular中的新成员,但是什么是ts类文件? 当我按下更改范围时,所有内容都会改变,但除了更改范围外,也许是因为它很脏? –

+0

没关系,我在想这是角度应用程序,但它angularjs。 –

回答

1

请注意,输入数据需要与NG-模型绑定,而您正在使用值标签进入您的输入。这意味着该值以html形式呈现,而不是模型中,因此当您单击其他配置文件时,UI无法检测到更改。请使用ng-model作为输入框的输入值而不是值标签。