当Angular模型更改时,更新Select2选定的元素

时间:2014-03-14 11:26:40

标签: angularjs angularjs-select2

我正在开发一个通过AngularJS UI部署软件的项目。在当前视图中,您必须选择部署所针对的环境。可能的环境列表存储在范围中,并且选择的选项是从

构建的
<select ui-select2="{ }" data-placeholder="All Environments" ng-model="transformParams.EnvironmentIds" multiple="multiple" class="input-xxlarge">
  <option ng-repeat="environment in environments" value="{{ environment.Id }}">{{ environment.Name }}</option>
</select>

此页面上还有一个下拉列表,用于更改要为其设置环境的当前项目。从下拉列表中选择现有项目应从现有项目中获取Environments属性,并在Select2框中选择正确的元素。这显然会更新transformParams.EnvironmentIds模型。我尝试更新该模型以更改选择哪些环境但无济于事。

我已经看过错误修复to Angular 1.2,但我仍然坚持使用1.0.7并且在此阶段没有选择升级Angular。

1 个答案:

答案 0 :(得分:1)

我通过使用select2的一些选项解决了这个问题:

<select ui-select2="selectOptions" data-placeholder="All Environments" ng-model="transformParams.EnvironmentIds" multiple="multiple" class="input-xxlarge">
    <option ng-repeat="env in environments" value="{{ env.Id }}">{{ env.Name }}</option>
</select>

在控制器中定义选项:

$scope.selectOptions = {
    'multiple': true,
    'simple_tags': true,
    'initSelection': function (element, callback) {
        callback($(element).data('$ngModelController').$modelValue);
    }
}