編集:これは実際に機能することがわかりました。インスペクターの「モデル」属性の背後にあるコンテンツが表示されないだけです。私が使用していた特定のデータ ポイントにはコンテンツがなかったので、私はそれに気づきませんでした。助けてくれたすべての人に感謝します。
そのため、非常に冗長なネストされたディレクティブ構造を作成することで、フォーム構造をよりシンプルにしようとしています。私はこれを達成するためにかなり基本的なAngularコードを使用していますが、何らかの理由で、子ディレクティブの属性の値として親からの属性を使用することは機能しません(説明するために以下のコードは、いくつかの独自の単語を変更する必要がありましたが、本質的には同じ)。私は何を間違っていますか?
親 HTML ディレクティブの呼び出し:
<field-label project-for="projectName" project-model="data.product.projectName">Project Name</field-label>
指令コード:
app.directive("fieldLabel", function() {
return {
restrict: "E",
transclude: true,
scope: { model: '=projectModel', for: '@projectFor' },
templateUrl: 'views/products/label.html',
};
});
編集:リクエストにより、ここで使用されている他のディレクティブ:
app.directive("projectOtherView", function() {
return {
restrict: "E",
scope: { field: '=projectOtherViewModel' },
templateUrl: 'views/products/XXX.html',
};
});
テンプレート HTML
<div class="col-sm-2 text-right">
<label for="{{for}}" class="control-label" ng-transclude></label>
<project-other-view project-other-view-model="model"></project-other-view>
</div>
「for」は正常に機能しますが、「モデル」はそれ自体を通過するだけであり、本来あるべき姿(最初に通過したモデル名)ではありません。