我遇到了某种问题,如果我定义了范围变量,它会在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()初始化,那么一切正常。
我试图让这个工作正常,所以我可以在选择框下方显示自定义错误。
任何帮助将不胜感激!
谢谢, 莱恩
答案 0 :(得分:2)
select2
初始化方法有些奇怪。
您可以使用$timeout
包裹来解决。
$timeout(function() {
$('.select2#state').select2();
})
这里是plunkr:http://plnkr.co/edit/i1HNAtfHfNkq2srAff5S?p=preview