Javascript 选择不识别正在进行的更改

Javascript 选择不识别正在进行的更改,javascript,angularjs,angularjs-select,Javascript,Angularjs,Angularjs Select,我有一个选择使用ng选项。它有4个周期。触发事件后,会发生以下情况: if ($scope.periods.length <= 4) { $scope.periods.push({ IdPeriod: 6, Description: "PERSONALIZADA" }); } setTimeout(() => { sel.options[sel.options.length - 1].selected = true; }, 100); 我正在创建一个新

我有一个选择使用ng选项。它有4个周期。触发事件后,会发生以下情况:

if ($scope.periods.length <= 4) {
  $scope.periods.push({
    IdPeriod: 6,
    Description: "PERSONALIZADA"
  });
}

setTimeout(() => {
  sel.options[sel.options.length - 1].selected = true;
}, 100);
我正在创建一个新选项,它不应该从一开始就显示出来。在它之后,有一个很短的超时sel.options[5]在创建它之后似乎没有定义,我选择它显示在select中

问题是,如果我触发创建该选项的事件,并在创建新选项之前重新选择所选的选项,它将不会调用分配给ng change的方法

错误的

setTimeout(() => {
  sel.options[sel.options.length - 1].selected = true;
}, 100);
更好

$timeout(() => {
  sel.options[sel.options.length - 1].selected = true;
}, 100);
setTimeout中的事件未与AngularJS框架集成

AngularJS通过提供自己的事件处理循环来修改正常的JavaScript流。这将JavaScript分为经典和AngularJS执行上下文。只有在AngularJS执行上下文中应用的操作才会受益于AngularJS数据绑定、异常处理、属性监视等

有关详细信息,请参阅


是的,问题是这个项目在我被雇佣之前就已经完成了。lol。这只是一个功能添加。@beanic typescript是javascript的超集……可以说是糖衣。你会如何用打字机书写if语句?@米开朗基罗显然我没有对if语句这样说。但是看到人们不遵守angularJs文档的规则是非常恼人的。@beanic这似乎是angularJs项目,它主要用于JS。它不是强制用户使用的角度typescript@NachoGonzalezAmpudia我不明白你想做什么。您可以直接说,在创建新选项后,它不起作用,然后单击已单击的选项。当您两次单击同一选项时,它不会检测到更改,因为没有更改。当您从一个选择选项更改为另一个选择选项时,将触发更改。我建议你分享你所有的代码和HTML,否则我们无法理解你想做什么,请在或类似的网站上做一个小演示。