私はIonicアプリで作業していますが、画面にはチェックボックス付きのリストとすべてを選択するオプションがあります。私はAngularJSとIonicが初めてです。AngularJSの2箇所で同じコントローラを使用
Select Allと他のリストが存在する親要素でコントローラを使用している場合、「Select All」は正常に機能します。
「すべて選択」がスクロールするときに常に表示されるように、「すべて選択」をサブヘッダーに移動します。
私は両方の場所で同じコントローラを使用しようとしましたが、Select Allは機能しませんでした。ちょうどスコープが変更されたことを読んで、値が渡されません。
これを修正するために変更や他の方法をパスする方法はありますか?
データはサービスから取り込まれます。
HTML
<ion-header-bar class="bar-light bar-subheader">
<div ng-controller="MainCtrl">
<ion-checkbox ng-model="selectAll" ng-click="checkAll()" >
<p>Select All</p>
</ion-checkbox>
</div>
</ion-header-bar>
<ion-content class="has-header">
<div class="list" ng-controller="MainCtrl">
<ion-checkbox ng-repeat="item in devList" ng-model="item.checked">
<div class="row">
<div class="col">
<p>{{ item.text }} - 99</p>
<p>{{ item.text }} - 99</p>
</div>
<div class="col right">
<p>{{ item.text }} - 99</p>
<p>{{ item.text }} - 99</p>
</div>
</div>
</ion-checkbox>
</div>
</ion-content>
JS
.controller('MainCtrl', function($scope) {
$scope.devList = [
{ text: "HTML5", checked: true },
{ text: "CSS3", checked: false },
{ text: "JavaScript", checked: false }
];
$scope.checkAll = function() {
if ($scope.selectAll) {
$scope.selectAll = true;
} else {
$scope.selectAll = false;
}
angular.forEach($scope.devList, function (item) {
item.checked = $scope.selectAll;
});
};
});
あなたのようなあなたの状態を定義されている場合、それを使用し、ビューのNG-controller' '言及しないでください - ' .state( 'mystate' {コントローラ、 'mainCtrl' 、templateUrl: 'mytemplat e.html '}) ' – swapnesh
' if($ scope.selectAll){ $ scope.selectAll = true; } else { $ scope.selectAll = false; } 'は基本的に無駄です、' $ scope.selectAll =!$ scope.selectAll; 'そうでなければ値を切り換えることはありません。 – GillesC
@swapnesh私はそれを試しましたが、それは動作していません、私は内のヘッダータグを保持してみましたが運もありません –
Shankar