私はAngularJSカスタムディレクティブで最初に試しています。AngularJS - ディレクティブのリンク関数で隔離されたスコープにアクセス
ディレクティブのリンク機能で隔離されたスコープを使用する(または理解している)のに問題があります。ここで
は私のアプリのこの部分のコードです:
...
<raw-data id="request-data" title="XML of the request" data="request">See the request</raw-data>
...
request
view.html
は、リクエストのXML文字列が含まれているviewCtrlの範囲に発表された変数です。
rawData.js
directives.directive('rawData', function() {
return {
restrict : 'E',
templateUrl : 'partials/directives/raw-data.html',
replace : true,
transclude : true,
scope : {
id : '@',
title : '@',
data : '='
},
link : function($scope, $elem, $attr) {
console.log($scope.data); //the data is correclty printed
console.log($scope.id); //undefined
}
};
});
生-Data.HTMLに
<div>
<!-- Button to trigger modal -->
<a href="#{{id}}Modal" role="button" class="btn" data-toggle="modal" ng-transclude></a>
<!-- Modal -->
<div id="{{id}}Modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="{{id}}Modal" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">{{ title }}</h3>
</div>
<div class="modal-body">
<textarea class="input-block-level" rows="10">{{ data }}</textarea>
</div>
<div class="modal-footer">
<!-- <button class="btn" ng-click="toggleTagText('')">{{'cacher'}} l'image</button> -->
<button class="btn btn-primary" data-dismiss="modal" aria-hidden="true">Fermer</button>
</div>
</div>
</div>
IDがcorrecltyときモーダルポップを示している理由を私は理解していない
が、私はそれconsole.log()
しようとすると、その値は未定義です。
は、たぶん私は孤立スコープ値(=
と@
)と間違っています。
ありがとうございます。 @
を結合させた:)
これは総当て推量ですが、「ID」ため何とか「ID」特別ですDOMの基本部分とAngularは、その理由でディレクティブに正しくマップしません。その属性の名前を変更してより効果的に役立つかどうか試してみましたか? – blaster
あなたがフィドル(jsfiddle.com/plnkr.co)を置くことができれば、多くの助けになります。 –
@blaster:「タイトル」と同じことが起こっていて、DOMの基本的な小道具ではありません。 :) – pdegand59