当命中输入select2 angularjs时会触发什么事件?

时间:2015-03-25 17:28:49

标签: javascript angularjs angular-ui angularjs-select2

我正在尝试在用户输入其名称时向阵列添加新元素,并在标记无多个部分的this plunker中按Enter键。这是我到目前为止所得到的:

<ui-select tagging="catTransform" on-select="addCategory()" ng-model="category.selected" theme="bootstrap" style="width: 600px;" title="Choose a category">
      <ui-select-match placeholder="Выберите категорию...">{{category.name}}</ui-select-match>
      <ui-select-choices repeat="category in categories | filter: {name: $select.search}">
        <div ng-bind-html="category.name | highlight: $select.search"></div>
      </ui-select-choices>
    </ui-select>

在我的控制器中,我有:

$scope.category = {}

$scope.categories =
  [
    {name: 'Food', id: 5},
    {name: 'transport', id: 10}
  ]
$scope.catTransform = (name) ->
  cat = {name: name, id: null}

$scope.addCategory  = (item, model) ->
  $scope.categories.push item
  model = item

现在您可以看到categories不是普通字符串而是对象数组,所以我有这个catTransform函数来从字符串创建对象。在你输入一些随机字符串并点击输入时,在plunker中创建新标记并立即被选中。我无法找到任何能够将侦听器附加到侦探器中的任何事件的代码,它以某种方式神奇地工作。 在the docs中,它表示该指令提供了两个自定义事件on-remove和on-select。我尝试将我的听众附加到on-select上,你可以在上面的标记中看到,但当然没有运气。那应该怎么做呢?我应该听key-press并在处理程序内部检查按下了哪个键,如果它是Enter键,那么将新类别添加到数组中?如果是这样,我如何获得当前搜索字符串?

我也是正确的,因为处理函数的第二个参数是指令的模型(与我在上面的标记中通过ng-model指定的相同)并且如果我想要选择我的新对象我必须简单地分配它:

model = item

我发现angularjs / select2的文档非常差,我必须说。

0 个答案:

没有答案