2016-08-03 68 views
1

我目前正試圖在通過ng-options選擇另一個值時在控制器中設置變量。例如,如果根據titleCompanies中選擇一個,則將myValue設置爲特定公司的相應id。以下是HTML片段:在選擇ng選項時更新控制器變量

<select multiple="" class="form-control" ng-model="myValue" 
      ng-options="d.title for d in Companies"></select> 


<select multiple="" class="form-control"> 
<option ng-placeholder="{{myValue}}"></option> 
</select> 
控制器

而且我CompanyCompaniesmyValue

function Company(title, last, pw, id) { 
    this.title = title; 
    this.id = id; 
} 
$scope.Companies = []; 

$scope.myValue = ''; 

這裏是溫控功能是種子Companies陣列:

$scope.getValues = function() { 
    $http.get('/route/to/names') 
    .success(function (data, status, headers, config) { 
     for (var i = 0; i < data.length; i++) { 
      $scope.Companies.push(new Company(data[i]['Title'],data[i]['ID'])); 
     } 
    }) 
}; 

程序背後的目的是根據所選的從數據庫中進一步提取數據。我在頁面上設置myValue作爲選項的原因是爲了確定操作是否已實現。任何意見如何解決這個或類似的問題將不勝感激!謝謝!

+1

'd.id爲d.title對於公司中的d來說 - 確保使用正確的外殼,因爲在公司構造函數中有'title'和'id'小寫,但是適合放在for循環中。 – KreepN

+0

我是否缺少某種會觸發'myVal'初始化的'ActionEvent'?或者僅僅是選擇一個足以讓數據綁定在我的程序中出現的選項?哦,它是大寫的,因爲它正在訪問對象的特定屬性「標題」和「ID」。 – WakaChewbacca

+0

那麼你有你的模型綁定到一個空字符串,所以我假設你選擇插入一個選項在開始這不是一個ID。它將受到你的選擇的約束。你甚至不能在你的控制器中使用它,當你做出選擇時,它會被添加到範圍中。 – KreepN

回答

0
d.id as d.title for d in Companies 
  • 確保使用正確的外殼,因爲你的標題和ID小寫在你的公司構造函數,但在適當的套管for循環