コントローラ変数に基づいてテンプレートにディレクティブをロードしようとしています。私がここで見てきた他の質問は、コントローラからそれを取得するのではなく、命令に渡される文字列に依存しています。コントローラからのディレクティブテンプレート
指令:
import {LanguageController} from "./language.controller.ts";
export class LanguageSelectDirective {
static NAME: string = "selectLanguage";
static factory(): ng.IDirective {
let directive = {
restrict: "E",
link: function() {},
templateUrl: function(elem, attrs){
return "./" + attrs.language + "/language.html"
},
scope: {
language: "@"
},
controller: LanguageController,
controllerAs: "lc",
bindToController: true
};
return directive;
}
}
コントローラー:
export class LanguageController{
private selectedLanguage: String;
//More stuff
}
テンプレート:
<select-language ng-hide="authenticated" language="{{lc.selectedLanguage}}"></select-language>
私はKEエラーEPのシーイングは次のとおりです。
GET http://localhost:3000/%7B%7Blc.selectedLanguage%7D%7D/language.html 404 (Not Found)
どのように私は、コントローラ変数としての代わりに、文字列リテラルとして言語パラメータを評価することを強制することができますか?
選択言語> ...あなたが必要としない<選択言語NG非表示= "認証済み" 言語= "lc.selectedLanguage"> を試してみてください '{{}} '中括弧 –
' ng-include'を使うことができます – charlietfl
@charlieftlが正しいと思います - ng-includeが行く方法です。私は私の答えを更新しました。 –