选择Dropdown不在模型中显示$ scope值

时间:2017-05-04 12:26:51

标签: angularjs angularjs-scope

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

我通过一个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>

有人能注意到什么吗?

1 个答案:

答案 0 :(得分:0)

我认为您正面临控制器范围问题: 您正在控制器实例中设置变量,并尝试从另一个实例中获取该变量。

事实是,每个页面都会安装一个控制器,即使它是相同的控制器名称(可能会令人困惑)。

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

这是JSFiddle demo