2016-10-29 4 views
0

Angularを使用して動的にチェックボックスを構築しています。私はいくつかの条件に基づいてng-checked値を設定します。AngularJSでng-checked = trueのときのpageload呼び出し関数

チェックボックスは、pageloadで適切にチェックされています。 ng-checked = trueのときに、ページロード時にmakeAddressDefault()関数(現在ng-clickで使用されている)を呼び出す必要があります。

<input type="checkbox" 
    id="defaultAddress{{$id}}" 
    ng-model="addressChecked" 
    name="defaultAddress" 
    ng-click="makeAddressDefault(add, $event)" 
    ng-checked="addresses.length === 1 || add.IsDefault() || isSelected(add.id)"> 
<label ng-init="isAddressDefault(addresses, add)" for="defaultAddress{{$id}}"> 
    {{add.FirstName}} {{add.LastName}}<br /> 
    {{add.Address1}}<br /> 
    {{add.City}}, {{add.State}} {{add.ZIP}} 
</label> 

これを処理する最善の方法は何ですか?ありがとう!お使いのコントローラで

+0

コントローラの状態を確認してみませんか? – Aer0

+0

@ Aer0どのようにそう?私は、変更のために私の関数を呼び出そうとしましたが、チェックボックスの最初のチェックが起こったときに、ページの読み込みに変更が呼び出されません。 –

+0

それはこれまでのところ最良の解決策ではないかもしれませんが、単にng-checked条件をコントローラのif条件に渡すことができます。それが真実かどうかを確認し、あなたの望む機能を呼び出すだけです。これは確かにすべての変数がコントローラの負荷でアクセス可能でなければなりません。 – Aer0

答えて

1

は、なぜあなたは、コントローラが初期化された後、自動的にあなたのinit関数を呼び出します

$scope.init = function(){ 
    angular.forEach(addresses, function(add){ 
    if(addresses.length === 1 || add.IsDefault() || isSelected(add.id)){ 
     makeAddressDefault(add) 
    } 
    }) 
} 

$scope.init() 

ような何かをしません。

+0

チェックボックスがオンになっていることをどのように知ることができますか? –

+0

あなたはあなたのhtmlのアドレスの 'チェックされた'笑をチェックするための同様のロジックを行うことができます。私の改訂版を参照してください –

+0

面白い、私はそれが好きです。やってみます。ありがとう! –

関連する問題