Angular:select / ng-option未激活:如何调试?

时间:2015-10-13 07:58:51

标签: angularjs ng-options angularjs-select

我遇到一段角度代码有问题:我有一个" 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>

它可以在小提琴上测试: http://jsfiddle.net/zDvD9/78/

独自一人,没有问题。

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

有人可以告诉我如何尝试调试吗?我从来没有用棱角分明,我也不知道是否有办法在选择的变化中捕捉事件...

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我不是100%肯定,但我认为我的担忧与Angular没有直接关系,但它是一个集成Angular&#34;代码的问题。在另一个使用jQuery的应用程序中......

&#34; ng-select&#34;组件是唯一的&#34; Angular&#34;我在这个页面中遇到的问题。

经过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>

我仍然需要检查是否可以正确检索当前值。我很乐意为每次价值变动举办活动!