初歩的な質問です。なぜ、Angularはローカルで動かないのでしょうか?
一般的なJSはjsを書いてブラウザに突っ込めば動きます。しかし、Angularはローカル開発の時点で、仮想サーバを使って開発します。
ng serviceをコマンドし、localhostで確認する流れとなっていますが、そもそもなぜ仮想サーバが必要なのでしょうか?
ご存知の方いらっしゃいましたが、よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
Angualr2 には詳しくないのですが、たぶん外部ファイルのロードなどの際に Same Origin Policy
に引っかかるからではないかと思います。(外部にコンポーネントやデータソースを持たないなら動くかも)
【AngularJS の サンプルコードをローカルで弄ってたら Google Chrome だと表示されなかったりする件 - 牌語備忘録 -pygo】
http://cortyuming.hateblo.jp/entry/20120822/p1
※ Angualr1系 だと思われますが、こういう問題が起こります。
【[その他] ChromeにてAjaxでローカルファイルにアクセス - Qiita】
http://qiita.com/cigalecigales/items/33afaa42f91542ffa62e
【npm iしてAngualr 2のHello World!を書くところまで【改】 - Qiita】
http://qiita.com/armorik83/items/ae737ab584012a0f5876#ビルドそして起動
この例はまだローカル経由で動きますが、RouterやAjaxなどが絡むときはローカルでサーバを立ててください。
投稿2017/04/19 18:17
総合スコア69407
0
大雑把ですが
JavaScriptは2タイプ(他にもあるかも)あり
0. ブラウザのJavaScriptエンジンが実行するJavaScript
- node.jsが実行するJavaScript
ブラウザで動くJavaScriptはサーバーからJavascriptファイルをダウンロードしてからブラウザのjavaScriptエンジンが実行しています。
※ブラウザのJavaScriptエンジンが共通ではないため、一部の関数でIEで動いてChromeで動かないなどが起こります
node.jsでAngularを使用した場合、jsファイルを実行した後にその結果をクライアントへ返します。
※node.jsで書いたjsファイルはブラウザエンジンでは動きません。
<script type="text/javascript" src="node.jsで書いたjsファイル" />
としてもエラーになります。
個人的な考えとしてnode.jsはJavaScript言語に非常によく似たかつ拡張子が同じだがまったく別の言語と思ってます。
Angular公式サイトに「One framework.Mobile & desktop.」と書かれていますが、これはmobile=スマホ・タブレット、desktop=(デスクトップ・ノート)パソコンを指していると解釈しています。
つまり「Angularを使えばいろんな端末のブラウザ環境で動くものができますよ」と言う意味ですかね。
そしてAngularはサーバ用のフレームワークです。
なのでng serveコマンドを実行しWEBサーバを立てブラウザで確認と言う作業になります。
蛇足ですが、
インストール形式のアプリを作りたいならelectronが有名ですかね
投稿2017/04/20 01:44
総合スコア1480
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/23 15:28
2017/04/23 15:45