GVKun编程网logo

如何在AngularJS上的HTML中直接访问模块的常量(angularjs调用接口)

23

如果您对如何在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调用接口)

如何在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中访问类常量

angular2如何在html中访问类常量

我在typescript类中将一些常量定义为public static readonly.这包含一些跨应用程序的常规常量.
如何在组件html中访问它们?
有没有办法在html中直接使用?
会像{{MyConstantsFactory.Myconstant}那样工作吗?

解决方法

不,你必须在类的构造函数中本地(使用你的工厂)转换它们并像通常使用任何属性一样使用它们

angularjs – Angular 1.2:ng-bind-html删除img上的src属性

angularjs – Angular 1.2:ng-bind-html删除img上的src属性

我在客户端使用Angular(1.2 RC2)开发CMS驱动的网站.由于内容来自CMS,我不幸被迫在 JSON字符串中使用接收HTML.大多数HTML都被注入并渲染得很好,但是图像标签的src被剥离了.从我读到的src应该以“unsafe:”为前缀,如果这是Angular中的XSS安全问题,则不会完全删除..但我可能会弄错.

我已经在这个问题上待了一段时间,感觉我已经尝试了从合理到彻头彻尾的愚蠢的一切.将我的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
\r\n

\r\n
\r\n
\r\n

Sulvat Quis 1

\r\n

– Nullam dictum ac enim

\r\n
\r\n

Proin 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
\r\n
\r\n
","articlePriority": 0,"category": { "cmcaId": 9,"corp": { "corpId": 2,"guiSelected": false },"name": "carousel","visibleInMenu": false },"published": true

}

你在这里遗失的作品是通过$sce.trustAsResourceURL();来信任图片网址.有关文档,请参见 here.

编辑:此外,它似乎你没有将ng-src值包装在引号中(以及它作为HTML属性所需的引号).这不起作用 – ng-src期望一个javascript字符串作为表达式的最终结果,并且你为它提供了一个无效的javascript文字.

angularjs – Angular JS – 如何处理重复的HTML代码,如页眉/页脚?

angularjs – Angular JS – 如何处理重复的HTML代码,如页眉/页脚?

我只是读了 introduction to Angular JS,但是我没有看到任何一种方式来编码你的HTML标题代码和页脚代码,只需一次,并将其包含在所有的页面中。

有没有官方/推荐的方式来做到这一点?

正式的方法是使用 ngInclude指令,该指令“抓取,编译并包含外部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

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的相关知识,请在本站进行查询。

本文标签: