ディレクティブを複数回使用したい。私のボタンをクリックするたびに、それに応じてテンプレートが更新されます。 Intially $ scope.itemはitem.idが、私は今、次のように結果が4にitem.idを変更するボタンをクリックすると、そのためにはAngularJsディレクティブ複数回発行
として次を表示1. =含まれています。
しかし、あなたが見るように、表示される初期ITEM1はITEM4に変更されました。
最初にitem1を表示し、ボタンをクリックして、表示された初期値を変更せずにitem4を表示したいとします。どうすればこれを達成できますか?
私はあなたがコントローラでDOM操作を行うことを避けるようにしてください私のコントローラ
function MyCtrl($scope,$compile) {
$scope.item = {id: 'item1'};
$scope.hello = function() {
$scope.item = {id: 'item4'};
var dialogTextHTML ="<my-directive item ='item'></my-directive>"
var compiledDialogData = $compile(dialogTextHTML)($scope);
document.getElementById('mycontainer').appendChild(compiledDialogData[0]);
}
}
マイHTML
<div ng-controller="MyCtrl">
<button ng-click="hello()">
Click here
</button>
<div id='container'>
<my-directive item='item'></my-directive>
</div>
</div>
スコープは隔離されていますか? https://thinkster.io/egghead/isolate-scope-at –
こんにちは、使用しているAngularJSのバージョンを1.5以下に追加してください。 http://plnkr.co/にケースサンプルを追加できますか? これはサービス/ファクトリですべてのロジックが改善できると思うが、1つの点がわからない: ボタンをクリックするたびに項目がリストに追加されますか? 最初のクリック= item1 2番目のクリック= item1、item4 3番目のクリック= item1、item4、itemX –
私はAngularJs 1.5を使用しています。ボタンをクリックするたびに、新しい項目を追加します。 $ click.itemの値はクリックごとに変わり、以前の値を変更せずに更新された値を表示する必要があります。 – ASR