Angular : select / ng-option 未触发:如何调试?

Angular : select / ng-option not fired: how to debug?

我在使用一段 angular 代码时遇到了问题:我有一个 "ng-select" 在某些环境中有效但在其他环境中无效!

这段代码的型号是:

 var imputationApp = angular.module('imputationApp', []).controller('imputationController', function($scope) {
    $scope.currentSL = '';
    $scope.sousLignes = [ 
        { "slidx":"c5!1875354624","desc":"option1 " }, 
        {"slidx":"c9!1875379297","desc":"option 2" }, 
        { "slidx":"c9!1875379392","desc":"option 3" } 
    ];
});

和 HTML:

<div ng-app="imputationApp" ng-controller="imputationController">
 <fieldset> <legend>Imputation :</legend>  
     <select class="liste-candidats-select" ng-model="currentSL" ng-options="item as item.desc for item in  sousLignes"  ></select>
   <br />
<span> aE: {{currentSL.desc}} / {{currentSL.slidx}}  </span> 
</fieldset> 
</div>

可以在 fiddle 上进行测试: http://jsfiddle.net/zDvD9/78/

一个人,没问题。

但是当集成到更复杂的页面中时,有时它 运行,有时不...所以我不可能提供更多关于它的细节。

有人可以告诉我如何调试它吗?我从来没有用 angular 做过,我不知道是否有办法捕捉 select 的变化事件...

感谢您提供任何可能的解决方案。 迪迪埃

有一个名为 ng-change 的指令。您可以使用它并在调用的函数中设置断点。

我不是 100% 确定,但我认为我的担忧与 Angular 没有直接关系,而是 Angular "code" 的整合问题另一个使用 jQuery, ...

的应用程序

"ng-select" 组件是我在此页面中遇到的唯一 "Angular" 问题。

经过 3 天的头痛之后,我找到了(希望!)解决方法,需要一些工作:

在我的控制器中,我添加了一个全局变量:

var AngularMainScope = null;
var imputationApp = angular.module('imputationApp', []).controller('imputationController', function($scope) {
        ...
        AngularMainScope = $scope;

$scope.onSelectChangeSousLigne = function(sel){

    alert(' onSelectChangeSousLigne fired !!! ' + sel.value);  

    var wsl = $scope.data.idx_sousLignes[sel.value];
    $scope.data.currentSL = wsl;
    // do some stuffs..
    ...
    // Tell to Angular...
    if (!$scope.$$phase) {
        $scope.$apply();  // MAGIC !
    }
    return;
}

并且在 HTML 代码中...

<select ng-model="data.cur_slidx" onchange="AngularMainScope.onSelectChangeSousLigne(this)"   >
    <option  ng-repeat="item in data.sousLignes" value="{{item.slidx}}">{{item.desc}}</option>
</select>

我仍然需要检查是否可以正确检索当前值。我已经很高兴为值的每次更改都有一个事件!