angularjs-directive – Angular UI select2指令 – 以编程方式更新模型,不会反映在窗口小部件上

前端之家收集整理的这篇文章主要介绍了angularjs-directive – Angular UI select2指令 – 以编程方式更新模型,不会反映在窗口小部件上前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试以编程方式更新select2模型,并将视图刷新,但似乎不起作用.

这是一个从Angular UI项目分配的示例代码http://plnkr.co/edit/kQROgr?p=preview

我尝试添加initSelection()accroding到select2文档(http://ivaynberg.github.com/select2/“反应外部值更改”),但这没有工作.我也尝试过select2 3.3.2,也没有解决它.

有两个问题:
1)单击“更新模型”,模型更新,但它不会添加一个标签到select2小部件.也
2)单击“更新模型”,然后使用select2选择第二个标签,“Update-Model”添加的第一个标签消失.

我知道这个问题有点老了,但是我发现它并不知道答案.

我设法通过设置模型来做我想要的,然后在select2Options配置上调用initSelection()

所以我的配置是这样的:

$scope.select2Options = {
allowClear: true
minimumInputLength: 3
quietMillis: 1000
initSelection: ->
  $scope.property
query: (query)->
  Properties.query({q: query.term},(response)->
    data = {results: processData(response['properties'])}
    query.callback(data)
    )

  processData = (data)->
    results = []
    angular.forEach(data,(item,index)->
      results.push(item)
      )
    return results

}

我然后让我的模态返回新创建的对象,如下所示:

modalInstance.result.then((result)->
    $scope.property = result
    $scope.select2Options.initSelection()
  )

基本上一旦更新了模型,我不得不手动重新初始化select2小部件.我认为这可以用$scope来处理.$watch如果你真的想要但这可能是一个浪费,除非你有从几个地方或某事更新的属性.

猜你在找的Angularjs相关文章