2017-05-04 39 views
0

$範圍值我使用的角度很多次,但似乎無法察覺,我發現了問題:選擇下拉沒有顯示在模型

我通過一個ID像這樣爲可點擊的鏈接中繼器內:

<td data-title="'Company Name'" sortable="'CompanyName'"><a ui-sref="Locations({company_id: row.CompanyID})">{{row.CompanyName}}</a> </td> 

值正確通過並經有關控制器我使用的查詢字符串的服務來獲得相關的過濾器接收。 console.log正確顯示正確的值。然而,它沒有選擇下拉列表中選擇相應值:

angular.module('app').controller("LocationsController", ['$timeout', 
'$scope', '$http', 'QueryStringService', 'NgTableParams', '$location', 
function ($timeout, $scope, $http, QueryStringService, NgTableParams, 
$location) { 
var default_filters = { location_name: "", address_1: "", company_id: "" }; 
$scope.filterBy = QueryStringService.getFilters(jQuery.extend(true, {}, default_filters)); 

console.log($scope.filterBy.company_id); 
} 


// Displayed on relevant view 
<select ng-model="filterBy.company_id" ng-options="option.CompanyID as option.CompanyName for option in companies" class="form-control form-control-query"> 
    <option value="">All</option> 
</select> 

任何人都可以看到什麼?

+0

您的應用程序的另一個頁面中的「選擇」? – Mistalis

+0

是的,選擇帶來所有正確的值,它只是根據通過的值選擇正確的選擇。 – James

回答

0

我認爲你正面臨着控制範圍的問題: 你例如設置在控制器中的變量,並試圖從另一個實例得到它。

事實上,每個頁面都有一個控制器,即使它是相同的控制器名稱(這可能會令人困惑)。

您應該使用service來存儲此變量(例如您的QueryStringService),並從其他頁面訪問它。


這是JSFiddle demo

+0

我以前使用過這種設置值的方法,直到現在它總是運行起來...... – James

+0

@James這裏是一個[**小提琴示例**](http://jsfiddle.net/Mistalis/wt0n049p/1/ ) – Mistalis