私はrzsliderを持っています。私は機能に基づいて真であることを無効にしたい。だから私はそれをしたいdisabled:$scope.truthy
私はcheckDupsName()と呼ばれる関数を持っているcheckDupsNameは、重複がある場合はtrueを返し、そうでない場合はfalseを返す必要があります。関数がtrueを返す場合、$ scope.truthy変数をtrueに設定しますが、問題は、(スライダ内の)この関数の外で呼び出すときは常にfalseです。
$scope.checkDupsName = function(Mylist) {
var i, j, n;
n = Mylist.length;
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
if (Mylist[i] === Mylist[j]) {
return true;
}
}
}
return false;
};
$scope.truthy=false;
$scope.nameList = [];
var Types = [];
$scope.loadRuleList = function() {
PrioritizeService.getData($scope.prioritizeURL).
then(function(response) {
if (response) {
Types = response;
}
for (var k = 0; k < Types.length; k++) {
$scope.nameList.push(Types[k].name);
}
if($scope.checkDupsName($scope.nameList)) {
$scope.truthy=true;
}
};
$scope.slider = {
value: 1,
options: {
floor: 0,
ceil: 3,
showTicks: true,
showTicksValues: true,
disabled:$scope.truthy
}
};
あなたは 'then'によって呼び出される関数の中で定義しています。それを外側に移動し、代わりに 'scope'で定義/宣言された関数にして、それがパラメータとして使うデータを取る必要があります。 – Igor
私はそれを上に移動するので、パラメータとしてnameListを渡すことはできますか? – Angular