如果您对如何在AngularJS上的HTML中直接访问模块的常量感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于如何在AngularJS上的HTML中直接访问模块的常量的详细
如果您对如何在AngularJS上的HTML中直接访问模块的常量感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于如何在AngularJS上的HTML中直接访问模块的常量的详细内容,我们还将为您解答angularjs调用接口的相关问题,并且为您提供关于angular2如何在html中访问类常量、angularjs – Angular 1.2:ng-bind-html删除img上的src属性、angularjs – Angular JS – 如何处理重复的HTML代码,如页眉/页脚?、angularjs – Angular.js $compile返回html数组但不返回实际的html的有价值信息。
本文目录一览:- 如何在AngularJS上的HTML中直接访问模块的常量(angularjs调用接口)
- angular2如何在html中访问类常量
- angularjs – Angular 1.2:ng-bind-html删除img上的src属性
- angularjs – Angular JS – 如何处理重复的HTML代码,如页眉/页脚?
- angularjs – Angular.js $compile返回html数组但不返回实际的html
如何在AngularJS上的HTML中直接访问模块的常量(angularjs调用接口)
我想直接在html中使用几个常量(在控制器中几次)。
例如,这是主要的应用程序模块:
angular.module(''website'', []).constant(''ROUTES'', (function () { return { SIGN_IN: ''/sign/in'' }})()).config([..., ''ROUTES'', function(..., ROUTES { $routeProvider.when(ROUTES.SIGN_IN, {templateUrl: ''pages/sign_in.html'', controller: ''SignInController''});}]);
因此,很清楚如何使用控制器中的常量。
但是我该怎么做:
<html ng-app="website"> <body><a href="{{ROUTES.SIGN_IN}}">Sign in</a></body></html>
关键是将所有路线都放在一个地方。所以,我可以这样做,还是我选择了错误的方式?
答案1
小编典典恕我直言,更好的方法是使用$ rootScope。 在html中,每个范围都继承自$
rootScope,因此,如果当前作用域中不存在变量,则使用$ rootScope中声明的变量。
一种好的(IMHO)方法是在 运行 “阶段”中对此进行初始化
angular.module(''myApp'') .run(function ($rootScope) { $rootScope.ROUTES = ROUTES });
angular2如何在html中访问类常量
如何在组件html中访问它们?
有没有办法在html中直接使用?
会像{{MyConstantsFactory.Myconstant}那样工作吗?
解决方法
angularjs – Angular 1.2:ng-bind-html删除img上的src属性
我已经在这个问题上待了一段时间,感觉我已经尝试了从合理到彻头彻尾的愚蠢的一切.将我的CMS网址列入白名单,将所有内容列入白名单,禁用$sce,强制html通过$sce.trustAsHtml()并且好……到目前为止,没有运气.由于该网站是CMS驱动的,我不幸的是不能创造一个掠夺者/小提琴,但我希望一个善良的灵魂无论如何都会尝试帮助.
更新:忘记提到我也尝试过ng-src,效果相同.
更新II:如果我使用HTTPS,则src属性仍然存在并显示图像.这是可以接受的,因为它将在生产中的HTTPS上运行,但我仍然想知道为什么禁用$sce不起作用.
浏览器看到的HTML(slide.body的内容)
<div> <div> <img alt="none"> </div> <div> <div> <h1>Sulvat Quis 1</h1> <h2>– Nullam dictum ac enim</h2> </div> <p>Proin quis justo vel felis varius soDales sit amet ut diam.</p> </div> </div>
JADE(HTML)
.my-carousel(ng-controller='CarouselCtrl') carousel(interval='myInterval') slide(ng-repeat='slide in slides',active='slide.active') .my-carousel-item(ng-bind-html='slide.body')
角度控制器
.controller('CarouselCtrl',['$sce','Article','$scope',function($sce,Article,$scope) { $scope.myInterval = -1; $scope.slides = Article.query( {category: 'carousel'},function(data){ for (var i = 0; i < data.length; i++) { $scope.slides[i].body = $sce.trustAsHtml(data[i].body); } },function() { // Fail }); }])
示例JSON响应(幻灯片)
抱歉宽盒子,没有设法格式化它.
{ "cmarId": 16,"corp": { "corpId": 2,"guiSelected": false },"createdAt": "Sep 27,2013","articleTag": "slide-1","headline": "Slide 1","highlighted": false,"body": "\r\n","articlePriority": 0,"category": { "cmcaId": 9,"corp": { "corpId": 2,"guiSelected": false },"name": "carousel","visibleInMenu": false },"published": true\r\n\r\n\r\n
\r\n\r\n\r\n\r\nSulvat Quis 1
\r\n– Nullam dictum ac enim
\r\nProin quis justo vel felis varius soDales sit amet ut diam. Fusce auctor sapien nec purus sagittis,in venenatis turpis luctus. Nullam dictum ac enim sed commodo. Vivamus et placerat sapien.
\r\n
}
编辑:此外,它似乎你没有将ng-src值包装在引号中(以及它作为HTML属性所需的引号).这不起作用 – ng-src期望一个javascript字符串作为表达式的最终结果,并且你为它提供了一个无效的javascript文字.
angularjs – Angular JS – 如何处理重复的HTML代码,如页眉/页脚?
有没有官方/推荐的方式来做到这一点?
<html ng-app> <head> <script src="http://code.angularjs.org/angular-1.0.1.min.js"></script> </head> <body> <div ng-include src="'header.url'"></div> ... <div ng-include src="'footer.url'"></div> </body> </html>
有了这个,您可以在所有页面中重复使用相同的header.url和footer.url。
angularjs – Angular.js $compile返回html数组但不返回实际的html
app.directive('mySample',function($compile) { return { //template:"<input type='text' ng=model='sampleData'/> {{sampleData}} <br/>" link: function(scope,element,atts,controller) { var markup = "<input type='text' ng=model='sampleData'/> {{sampleData}} <br/>"; angular.element(element).html($compile(markup)(scope)); console.log($compile(markup)(scope)); } }; });
而且我希望它能够产生一个输入,一些通过范围和中断耦合的跨度.但是我得到了这个输出:
[[object HTMLInputElement],[object HTMLSpanElement],[object HTMLBRElement]]
我也尝试了模板,在这里单独评论,然后评论链接部分.这会生成输入和中断元素,但不会生成显示耦合模型输入sampleData的跨度.
我在http://jsfiddle.net/KvdM/nwbsT/有一个非工作样本来演示它.
element.html(markup); $compile(element.contents())(scope);
今天的关于如何在AngularJS上的HTML中直接访问模块的常量和angularjs调用接口的分享已经结束,谢谢您的关注,如果想了解更多关于angular2如何在html中访问类常量、angularjs – Angular 1.2:ng-bind-html删除img上的src属性、angularjs – Angular JS – 如何处理重复的HTML代码,如页眉/页脚?、angularjs – Angular.js $compile返回html数组但不返回实际的html的相关知识,请在本站进行查询。
本文标签: