2016-09-22 54 views
0

我是AngularJs的新手。 我的問題是:我有一個下拉框和一個文本框。我從下拉框中選擇一些值,然後彈出ng-change,並且當有人開始在文本框中輸入時,下拉框會變爲默認值。現在在下拉列表重置後,如果我再次選擇了之前選擇的下拉列表中的相同值,則ng-change不會被觸發。我該如何讓ng-change以相同的值工作?

我也使用ng-click這個,但它不適用於所有的瀏覽器。我被這個問題困住了。

有什麼辦法可以使ng-change的工作值與上一個或其他選項相同?

我的代碼段:

<code> 
    <input class="form-control" type="text" id="city1" onblur="codeAddress();" name="city1" ng-model="city1" required> 
    <select class="form-control" id="brandC" name="brandC" ng-model="vehicle.companyId" ng-change="selectServiceCenter();" required> 
    <option ng-selected="loginbrandId1==null" value='' >Select Your Car</option> 
    <option ng-selected="loginbrandId1 == vehicle.companyId" ng-repeat="vehicle in vehiclenames" value='{{vehicle.companyId}},{{vehicle.vehicleID}}' >{{vehicle.companyName}}--{{vehicle.vehicleNumber}}</option> 
    </select> 
    <script> 
$scope.watchHitCountcity = 0; 
    $scope.$watch('city1', function (newValue, oldValue) { 

     if(newValue!=undefined) 
      { 
      document.getElementById("brandC").value= ""; 
      } 
     $scope.watchHitCountcity++; 
    },true); 
    $scope.selectServiceCenter = function() { 
    alert("execute"); 
    } 
    </script> 
    </code> 
+0

的建議一plunker將是巨大的! –

回答

0

原因

發生了什麼事,你的情況是,你只是刪除使用本地Java腳本document.getElementById("brandC").value= "";從下拉列表中的值,但是這並未不改變該元素的ng模型的值,即ng-model="vehicle.companyId"。由於下拉的ng模型沒有改變,所以ng-change="selectServiceCenter();"函數沒有被觸發,因爲對於角度仍然是ng模型是相同的。

解決方案

所以更改下面的代碼像下面通過@Sandeep

$scope.vehicle ={}; //create vehicle object in scope.. 
$scope.$watch('city1', function (newValue, oldValue) { 

     if(newValue!=undefined && newValue!=oldValue){ 
      $scope.vehicle.companyId = null; 
      } 
     $scope.watchHitCountcity++; 
},true); 
+0

感謝您的讚賞。我應用它,但現在它給出了一個錯誤,如下所示:錯誤:$ scope.vehicle未定義 @http:// localhost:8080/carservice/resources/js/angular/angularProfile.js:133:6 Pe/this。 $ get

+0

更新我的答案!創建$ scope.vehicle = {};在你的控制器的對象,並嘗試現在做它 –

+0

它的工作......感謝您的努力 –

0

不要使用的document.getElementById( 「brandC」)值= 「」;。使用NG-模式 這樣的:你的問題背後

$scope.$watch('city1', function (newValue, oldValue) { 

     if(newValue!=undefined) 
      { 
      vehicle.companyId = ""; 
      } 
     $scope.watchHitCountcity++; 
},true); 
相關問題