2017-06-30 9 views
0

マルチテナントのウェブサイトなどの外部リソースをサポート - アンギュラ2/4角度templateUrlと、このようなウェブAPI

私は、マルチテナントアプリケーションを作成していると私は基本的に各テナントに能力を与えたいとネットコア1特定のフォームを変更します。各フォームには、同じビューモデルとプロパティが含まれます。レイアウト/スタイルのものです。私は角度を使用したい、私は同じサイト内のAPIエンドポイントからHTMLをフェッチするコンポーネントのtemplateUrlプロパティを使用しようとしています。エンドポイントは直接アクセスする場合は機能しますが、角度コンポーネントで参照される場合は機能しません。

@Component({ 
    selector:'home', 
    templateUrl:'/api/app-template-loader/login-form' 
}) 
export class HomeComponent { 

} 

コントローラー:

[Route("api/app-template-loader")] 
public class AppTemplateLoaderController : Controller 
{ 
    private AppTenant currentTenant; 
    public AppTemplateLoaderController(IEnumerable<AppTenant> tenant) 
    { 
     this.currentTenant = tenant.FirstOrDefault(); 
    } 

    [HttpGet] 
    [Route("{templateName}")] 
    public string Get(string templateName) 
    { 
     if (templateName == "home") 
     { 
      return $"<h1>{this.currentTenant.Name}</h1>"; 
     } 

     return "<h1>No template</h1>"; 
    } 
} 

私は非常に基本的なものを試してみたが、私はちょうどそれが仕事を得るように見えることはできません。ブラウザの「/ API /アプリのテンプレートローダ/ログイン・フォーム」をHTMLを返すへのアクセスが、コンポーネントにアクセスするとき、私はこのエラーを取得:

ERROR in ./ClientApp/app/components/home/home.component.ts 
     Module not found: Error: Can't resolve './/api/app-template-loader/login-form' in '<local disk path omitted for privacy>\ClientApp\app\components\home' 
     @ ./ClientApp/app/components/home/home.component.ts 18:18-66 
     @ ./ClientApp/app/app.module.shared.ts 
     @ ./ClientApp/app/app.module.client.ts 
     @ ./ClientApp/boot-client.ts 
     @ multi event-source-polyfill webpack-hot-middleware/client?path=%2F__webpack_hmr ./ClientApp/boot-client.ts 

私はこれが可能でなければならないと仮定しますが、私は見つけるのに苦労していますオンラインでも同じ問題でもここにある例があります。

いずれのポインタも大歓迎です。

ありがとうございます。

答えて

0

これはパスの問題です。 は、あなたがしようとしたしました:

templateUrl:'api/app-template-loader/login-form' 

そして、ログイン・フォームとは何でしょうか?それがバグだと思ったら、それがファイルならブラウズできますか?ウェブからアクセスできますか? (Webブラウザを使用して可用性を確認してください)。

PS:外部リソース(Webサイト)を取得しようとする場合、クロスオリジンリソース共有(CORS)を防ぐために応答がブロックされる可能性があることに注意してください。

+0

コントローラを質問に追加しましたが、スラッシュの有無にかかわらず、まだ喜んでいません。質問には既にあなたの質問に対する他のすべての答えがあります。コントローラ上のアクションです。はい、アクセス可能であり、直接動作します。 – James

関連する問題