Select 下拉列表未在模型中显示 $scope 值

Select Dropdown not displaying $scope value in model

我已经使用 angular 很多次了,但似乎无法发现我遇到的问题:

我通过一个像这样的 ID 作为中继器中的可点击 link:

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

该值已正确传递并由相关控制器接收我使用查询字符串服务来获取相关过滤器。 console.log 正确显示正确的值。但是,它没有 selecting select 下拉列表中的相关值:

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>

有人能注意到什么吗?

我认为您遇到了控制器范围问题: 您正在控制器 实例 中设置一个变量,并试图从 另一个实例 .

中获取它

事实是每个页面都会实例化一个控制器,即使它是相同的控制器名称(这可能会造成混淆)。

您应该使用 service 来存储此变量(例如您的 QueryStringService),并从您的其他页面访问它。


这里是JSFiddle demo.