我遇到一段角度代码有问题:我有一个" 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/
独自一人,没有问题。
但是当它集成在更复杂的页面中时,有时它会运行,有时候不会......所以我不可能提供更多关于它的细节。
有人可以告诉我如何尝试调试吗?我从来没有用棱角分明,我也不知道是否有办法在选择的变化中捕捉事件...
感谢您提供任何可能的解决方案。 迪迪埃
答案 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>
我仍然需要检查是否可以正确检索当前值。我很乐意为每次价值变动举办活动!