0

爲什麼我的Angular指令不能被提取,即使我提供了正確的url - 獲得$ compile錯誤並且XMLHttpRequest無法加載錯誤?

我從一個角度的應用程序開始,我不能包含一個指令,因爲我不斷收到2個不同的錯誤。

XMLHttpRequest cannot load/Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

  • 我研究了一下,有人提議建立一個服務器牛逼避免,我不明白。爲什麼我不能僅使用angular/html構建應用程序,而沒有後端,如果我真的不需要它。什麼可能導致該錯誤?

Error: $compile:upload

  • 當模板的URL被拼寫但是即incorrectly-顯然發生,我提供整個路徑從根(templateUrl: 'JS /導航欄/ navbar.html')或是那錯了? 謝謝。

PROJECT1/index.html中:

<!DOCTYPE html> 
<html lang="en"> 

<head> 
    <title>page</title> 
    <link rel="stylesheet" type="text/css" href="public/css/style.css" /> 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.8/css/materialize.min.css"> 

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"> </script> 

    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.2/angular-ui-router.min.js"></script> 

    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.8/js/materialize.min.js"></script> 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular-materialize/0.2.1/angular-materialize.min.js"></script> 
    <script src="js/app.js"></script> 
    <script src="js/navbar/navbar.js"></script> 
</head> 

<body ng-app="myApp"> 
    <header></header> 

    <navbar></navbar> 
    <ui-view></ui-view> 
</body> 

</html> 

PROJECT1/JS/app.js

'use strict'; 
var app=angular.module('myApp', ['ui.router', 'ui.materialize']); 

PROJECT1/JS /導航欄/ navbar.js

'use strict'; 

app.directive('navbar', function() { 
    return { 
     restrict: 'E', 
     templateUrl: 'js/navbar/navbar.html' 
    } 
}); 

PROJECT1 /js/navbar/navbar.html

<div class="navbar navbar-static-top navbar-inverse"> 
    <div class="container"> 
     <ul class="nav navbar-nav"> 
      <li> 
      Hello 
      </li> 
     </ul> 
    </div> 
</div> 

回答

0

始終使用服務器運行您的角度應用程序,否則您可能會出現交叉原點錯誤。服務器將幫助您resove文件paths.Then編輯指令是

'use strict'; 
app.directive('navbar', function() { 
    return { 
     restrict: 'E', 
     templateUrl: 'navbar.html' 
    } 
}); 

我做了一點plunker所以我們確保您的代碼是沒有錯誤的。

我不確定如何使用絕對路徑,但是如果您要使用它,那麼您必須鍵入類似於:「C:projects/project1/js/navbar/navbar.js」 您可以使用http-服務器很容易安裝和使用。 我希望能回答你的問題

+0

好的,謝謝。我剛剛添加了一個節點快遞服務器,現在它可以工作。你能解釋爲什麼一個角度的應用程序不會工作,除非我創建一個服務器?如果我使用絕對簡單的html,它會工作 - 角度有什麼區別?謝謝! – javascripting

+0

其實我錯了。沒有任何工作,我沒有得到的XMLHttpRequest錯誤,但仍然是$編譯錯誤,必須由該指令(如果我從我的index.html文件中刪除指令,錯誤ges away)導致。我像你所建議的那樣將templateUrl:'navbar.html'更改爲'nabber.html'。 – javascripting