1

私はAngular.jsが初めてで、さまざまなクライアントのディレクティブ内でさまざまなテンプレートを使用しようとしています。

問題は、3 種類のクライアントに対して 3 つのテンプレートがあり、検出後のクライアント タイプの結果に基づいて、ディレクティブに異なるテンプレートを使用したいということです。

グーグルで検索した結果は、ディレクトリタグに属性を追加するだけでしたが、検出結果の準備が整った時点で、テンプレートは既にコンパイルされています。

助言がありますか?

4

2 に答える 2

1

変数をディレクティブに挿入して、別のディレクトリでテンプレートを探すことができます。

myApp.directive('testDirective', [
  'clientType', function(clientType) {
    return {
      ...
      templateUrl: '/templates/' + clientType + '/test.html'
    };
  }
]);

次に、アプリの外部で定数「clientType」を設定し、定数として渡すことができます。

myApp.constant('clientType', 'mobile'); // Some type of function to determine this

ただし、これを効果的に使用するには、アプリを手動でブートストラップする必要がある場合があります。テンプレートのロード元を制御するために、本番コードで同様のことを行っています。

于 2013-02-26T20:58:39.600 に答える
1

ディレクティブ テンプレート内でngSwitchを使用できます。

于 2013-02-26T20:20:29.863 に答える