ディレクティブを使用してページのテンプレートをパラメータ化しようとしました。 私は 'タイプ'値を持つオブジェクトの配列を持っています。タイプが異なる場合、私は異なるテンプレートを使いたいです。ここで2ウェイデータバインディングを使用したAngularJSディレクティブのtemplateUrl関数
は、私が試したものです:
directive.js
angular.module('core')
.directive('mySolutionDisplay', function() {
return {
restrict: 'E',
scope: {
solution: '='
},
templateUrl: function (elem, attr) {
return 'path/to/template/solution-'+attr.type+'.template.html';
}
};
});
view.html
<div class="row">
<my-solution-display type="vm.solution[0].type" solution="vm.solution"></my-solution-display>
</div>
私は次のエラーを取得する: angular.js:11706 Error: [$compile:tpload] Failed to load template: path/to/template/solution-vm.solution[0].type.template.html
type="vm.solution[0].type"
をtype="{{vm.solution[0].type}}"
に置き換えようとしましたが、エラーメッセージに中括弧が追加されました。
に変更された方法に注意してくださいあなたはそのようにしようとしたことがあり
<my-solution-display type="{{vm.solution[0].type}}" solution="vm.solution"> </my-solution-display>
を使用し、私はそれが変数名を解決していません「」=タイプで考えますそこに中括弧を追加しようとすることができます –