質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

348閲覧

AngularJSのcomponentが動作しません

na-

総合スコア9

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/05/11 10:04

編集2019/05/12 10:29

AngularJSのcomponent機能について公式のリファレンスを見ながら確認しているのですが、動作しません。
以下のソースで誤っている点があるのでしょうか。

html

1<html> 2 <head> 3 <meta charset="UTF-8"> 4 <title>コンポーネントのおためし</title> 5 <script src="app/angular.min.js"></script> 6 <script src="app/index.js"></script> 7 <script src="app/heroDetail.js"></script> 8 </head> 9 <body ng-app="heroApp"> 10 <div><h1>コンポーネントのおためし</h1></div> 11 <div ng-controller="MainCtrl as ctrl"> 12 <b>Hero</b><br> 13 <hero-detail hero="ctrl.hero"></hero-detail> 14 </div> 15 </body> 16</html>

html

1<span>Name: {{$ctrl.hero.name}}</span>

js

1angular.module('heroApp', []) 2.controller('MainCtrl', function MainCtrl() { 3 this.hero = { 4 name: 'Spawn' 5 }; 6});

js

1angular.module('heroApp') 2.component('heroDetail', { 3 templateUrl: '../heroDetail.html', 4 bindings: { 5 hero: '=' 6 } 7});

AngularJSは公式から最新バージョンを入手し使用していますので1.5未満ということはないです。
参考にしているのは以下のURLです。
https://docs.angularjs.org/guide/component

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。解決してしまっていたらご容赦下さい。

こちらのコードは、ブラウザで直にローカルのファイルを参照している状態でしょうか?
例えば、ブラウザのアドレスバーに、file:///Users/xxx/angular/index.html という形で入力してローカルのファイルを表示させている感じです。

その場合は、ブラウザの「開発者ツール」を開いて、JavaScriptのコンソールでなにかエラーが出ていないかどうか確認してみてください。

ソースコード的にスペルミスやパスの間違いなどがなければ、他に理由があるはずです。
おそらく、テンプレートのhtmlを読み込もうとしている際に、

angular.min.js:xxx Access to XMLHttpRequest at 'file:///Users/xxx/angular/app/heroDetail.html' from origin 'null' has been blocked by CORS policy

みたいなエラーが出ているのではないでしょうか?
もしそうなら、ブラウザのセキュリティ上の制約です。
CORS(Cross-Origin Resource Sharing)というものになります。AngularJSに限らず、Ajax通信で別のファイルを読み込もうとする時は、httpプロトコル経由でないとエラーになったりします。

同じソースコードを、オンラインのplnkrやCodePenなどにあげて実行すると、多分エラーは出ないと思いますので、試してみてください。

また、こうしたブラウザの制約があるので、AngularJSに限らないことですが、ローカル開発環境でもWebサーバを立ち上げて、file:/// ではなく http:// で確認しながら開発を進めるという方法を使うのが一般的です。
(もし周知でしたら失礼いたしました...)

そうでない場合でも、JavaScriptコンソールにエラーが出ていれば、それを手掛かりにやっていくと良いと思います。

投稿2019/05/18 01:35

suama

総合スコア1997

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問