3

我正在尝试从下拉列表中选择一个值并从 angularJs 中对应的选择 id 获取数据

我想出了angular-ui/ui-select指令

<ui-select ng-model="customer" theme="selectize">
     <ui-select-match placeholder="Customer List">{{$select.selected.Name}}</ui-select-match>
        <ui-select-choices repeat="customer in customers | filter: $select.search">
            <span ng-bind-html="customer.Name | highlight: $select.search"></span>
            <small ng-bind-html="customer.Id.toString() | highlight: $select.search"></small>
        </ui-select-choices>
</ui-select>

在我的控制器上,我有获取客户方法

$scope.setActiveCustomer = function(customer) {
  customersService.getCustomers(customer).then(function(response) {
    $scope.selectedCustomer = response;
  });
};

我的问题是

  • 一旦我选择了我应该使用哪个事件来触发 setActiveCustomer 的客户(比如 onchange 或其他东西)。当我ng-click 多次使用事件触发时,因为ng-click用于控制激活。

  • 另一件事是如何为ui-select设置初始值?

谢谢

4

1 回答 1

7

根据ui-select FAQ,您的ng-model表达式中应该有一个.,例如:

<ui-select ng-model="model.customer" theme="selectize">

要设置初始值,您可以只设置 中指定的属性ng-model,因此在您的控制器中:

$scope.model = {
  customer: $scope.customers[0] // set the initial selected option
};

对于 onchange 事件,您可以这样使用$scope.$watch()

$scope.$watch('model.customer', function (customer) {
  $scope.setActiveCustomer(customer);
});

希望这可以帮助。

于 2014-08-15T11:36:45.123 回答