2

Angularjs でチェックボックスを true に設定しようとしています。現在、DOM を操作するためにバニラ JavaScript を使用してごまかしていますが、Angularjs で正しい方法で行いたいと考えています。

ビューは次のとおりです。

<div x-ng-repeat="addon in addons">
  <label for="{{addon.addoncode}}">
    <input type="checkbox"  
    name="{{addon.addoncode}}" 
    value="{{addon.addoncode}}"  
    id="{{addon.addoncode}}"  
    x-ng-model="addon.checked" 
    x-ng-click="checkAddonDependencies()"  >
   <span x-ng-bind-html="addon.addon_desc">{{addon.addon_desc}}</span> </label>
</div>

そして、ここにコントローラーの関連部分があります:

 if (document.getElementById(dep)) {
    document.getElementById(dep).checked=true;
     }

dep 値は addoncode 値と同じなので、存在する場合はチェックボックスをオンにします。これは機能し、ボックスをチェックしますが、代わりにスコープを使用してこれを行うにはどうすればよいですか?

私は試した:

x-ng-model="addon.addoncode" 

$scope.addon.dep = true;

しかし、運はありません...どんな助けにも感謝します。ありがとう。

4

3 に答える 3

3

HTML

<div ng-repeat="addon in addons">
  <label for="{{addon.addoncode}}">
   <input type="checkbox"  
     name="{{addon.addoncode}}" 
     value="{{addon.addoncode}}"  
     id="{{addon.addoncode}}"  
     ng-model="addon.checked" 
     ng-click="checkAddonDependencies()"  >
  <span ng-bind-html="addon.addon_desc">{{addon.addon_desc}}</span> </label>
 </div>    

コントローラ

function countController( $scope, $timeout )
{
$scope.addons = [
   {
       checked: true
   },
    {
       checked: false
   }
];   
}

で見るFiddle

[編集]

angular の主なポイントは、HTML の更新について心配する必要がないことです。を変更するだけです$scope.addons

コードが promise でどのように機能するか、3 秒ごとに項目を に追加する方法を確認できます$scope.addons。サービスごとに非同期タスクをシミュレートしdelayました。

Fiddle 2

ところで、私はあなたのHTMLに触れていません

于 2013-09-19T13:28:08.537 に答える