选择框后AngularJS和Select2模型状态不呈现

时间:2014-12-19 18:56:47

标签: angularjs jquery-select2

我遇到了某种问题,如果我定义了范围变量,它会在HTML到达select2框之前显示,但如果我在select2元素之后显示变量,它就不会出现这种情况。渲染。

这是我的HTML:

{{stateIsValid}}
<select id="state" name="state" class="select2" ng-change="stateChanged()" ng-model="client.state">
    <option value="state">State...</option>
    <option value="NJ">NJ</option>
</select>
{{stateIsValid}}

JS只是建立了select2框,并设置了一个范围变量:

$('.select2#state').select2();
angular.extend($scope, {
    stateIsValid: false
});

我的问题是,在HTML选择中,第一个{{stateIsValid}}呈现&#34; false&#34;,但第二个不会呈现,只显示{{stateIsValid}}。< / p>

我没有收到任何控制台错误。 这似乎是select2渲染本身的一个错误。如果我注释掉select2()初始化,那么一切正常。

我试图让这个工作正常,所以我可以在选择框下方显示自定义错误。

任何帮助将不胜感激!

谢谢, 莱恩

1 个答案:

答案 0 :(得分:2)

select2初始化方法有些奇怪。 您可以使用$timeout包裹来解决。

  $timeout(function() {
     $('.select2#state').select2();  
  })

这里是plunkr:http://plnkr.co/edit/i1HNAtfHfNkq2srAff5S?p=preview