角度指令不会出现

时间:2015-05-06 10:42:34

标签: javascript html angularjs angularjs-directive directive

在研究指令的时候,我总是遇到一些基本的错误,因为我只是为了从另一个html文件中导入一些内容而无法完成任务。

HTML(DECLARE @SQL NVARCHAR(MAX); SET @SQL = (SELECT 'DROP TABLE Update_Backups.' + QUOTENAME(SCHEMA_NAME(t.schema_id)) + '.' + QUOTENAME(OBJECT_NAME(t.object_id)) + '; ' FROM sys.tables t WHERE t.modify_date < DATEADD(year,-01, GETDATE()) FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'); PRINT @SQL -- FOR DEBUGGING YOU CAN CHECK THE STATEMENT ABOUT TO BE EXECUTED EXECUTE sp_executesql @SQL;

index.html

HTML(<!DOCTYPE html> <html ng-app="myapp"> <head><script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script><script type="text/javascript" src="app.js"></script></head> <body> <hello-world></hello-world> </body></html> - 与ssth.html位于同一目录中):

index.html

JavaScript(app.js - 相同的目录)

<h3>hello world</h3>

然而,我的浏览器根本不会向我显示(function(){ var app = angular.module('myapp', []); app.directive('helloWorld', function() { return { restrict: 'AE', replace: 'true', templateUrl: "ssth.html", }; }); })(); 消息。我知道有一些基本的东西我不知道但是什么?

Chrome控制台的错误报告:

  1.   

    XMLHttpRequest无法加载file:///.../ssth.html。交叉源请求仅支持协议方案:http,data,chrome,chrome-extension,https,chrome-extension-resource。

  2.   

    错误:无法在'XMLHttpRequest'上执行'send':无法加载'file:///.../ssth.html'。

  3.   

    错误:[$ compile:tpload] http://errors.angularjs.org/1.3.14/ $ compile / tpload?p0 = ssth.html

3 个答案:

答案 0 :(得分:2)

您应该在某个服务器上托管代码,以便模板可以访问,因为要加载的模板url哪个指令应该具有//http协议。

使用//file协议时会发生什么?

在按角度获取该模板时,它使用$templateRequest来获取模板,&amp; $templateRequest API使用$http方法获取模板,如果您使用//file协议进行任何ajax调用,无论如何都会失败。因此,通过在某些服务器(如WAMP,IIS等)上托管您的代码文件夹将解决您的问题。

解决方法(如果您修复它而不托管代码)

其他可能的快速解决方案是使用template选项而不是templateUrl template: "<h3>hello world</h3>",但这不是更好的解决方法。 :)

答案 1 :(得分:0)

请检查此链接:http://plnkr.co/edit/e3w54TZEmfj8h5O6BX7B?p=preview

我在上面的链接中解决了你的问题。

我在index.html和

中添加了<hello-world></hello-world>

在script.js文件中,我添加

gitHubViewer.directive('helloWorld', function() {
return {
    restrict: 'AE',
    replace: 'true',
    templateUrl: "ssth.html",
};
});

请查看。

答案 2 :(得分:-1)

您是否在index.html中添加了指令脚本?

<script src="{path}/helloWorld.js"></script>